الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عملت برنامج بالجافا وهنآك خطأ ما فيه ,,ارجوا افادتي ..

بدأه mema92 في 2 مارس 2011 · 4 رد · 488 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلآام عليكم ,,

انا طالبه جديد وابي مساعدتكم ,,

سويت برنامج وماطلع output لأنه فيه خطأ في ال object وانا عندي مشكلة في الأوبجكت مع اarray ,,

اتمنى منكم مساعدتكم .. ,

سويته في كلاسين ,,

الكلاس الأول هنا :

public class Student
{
private String[] a;    	
private int nelem;
private String name;


public Student (String n)
{
	name=n;
	nelem=0;
}

	public void insert(String value)
	{
		a[nelem]=value;
		nelem++;
	}

public boolean find(String searchkey)
{
	int j;
	for(j=0; j<nelem; j++)

	if(a[j] == searchkey)
	break;

	if (j==nelem)
	return false;
	else
	return true;
	}

	 public void display()

    {
    	int j;
    	for ( j=0; j<nelem; j++)
    		System.out.println(a[j]+"\t");

    }
}

والكلاس الثاني

public class StudentTest
{

public static void main(String[] args)
{
	String na=null;
Student obj;
obj = new Student(na);


    obj.insert("H");
  obj.insert("A");
  obj.insert("G");
  obj.insert("H");
  obj.insert("M");
  obj.insert("F");
   obj.display();


String name= "A";

int i;
for(i=0; i<5; i++)
if(obj.find ( name))

System.out.println("found" + name);
else
System.out.println("can't found" + name);



}

}

اانتظركمـ هنآ ^_^

#2

لم يتم تعريف الarray لم يتم تعريفها وتحديد الطول لها

لذلك فهى تلقى لكى خطأ NullPointerException

يجب تعريفها ووضع ليها طول حسب ما تحتاجين اليه

Software Developer
Mahmoudkelany.com


 

#3

لكن الكونستركتر يحمل داتا من نوع String

كيف استطيع ذلكـ وضع الطول ,,

ارجوا الإجابة ,,

تم تعديل هذه المشاركة بواسطة mema92 في 3 مارس 2011 في 12:21

#4

عدلت اعلى البرنامج واضفت الطول اللازم ,,,

لكن هناك خطأ لايتغير ,, يكتب في الرسالة

public class Student
{
 private int [] a;
  private int nelem;

  public Student(int S)
  {
    a=new int ;
    nelem=0;
   }

   	public void insert(String value)
	{
		a[nelem]=value;
		nelem++;
	}

public boolean find(String searchkey)
{
	int j;
	for(j=0; j<nelem; j++)

	if(a[j] == searchkey)
	break;

	if (j==nelem)
	return false;
	else
	return true;
	}


	 public void display()

    {
    	int j;
    	for ( j=0; j<nelem; j++)
    	System.out.println(a[j]+"\t");

    }
}

الكلاس الثاني

public class StudentTest
{

public static void main(String[] args)
{
int size=6;

       Student obj;              
        obj = new Student (size);


    obj.insert("Hind");
  obj.insert("Amal");
  obj.insert("Ghada");
  obj.insert("Huda");
  obj.insert("Amani");
  obj.insert("Fatimah");
   obj.display();





	String a="Amal";
			int i;
	if(  obj.find(a))
		System .out. println("search for :\t"+a);

		if( obj.find(a))
		 System.out.println("found\t" + a);
		 else
	System.out.println("not found\t" + a);
	}
}

ايش الخطأ بالضبط ..

#5

حضرتك عامله كدا

private int[] a;

ودى مصفوفه ارقام صحيحه

وعرفتيها على انها مصفوفه ارقام صحيحه

a = new int;

وعندما اردتى الادخال بها

 public void insert(String value) {
    	a[nelem] = value;
    	nelem++;
	}

قومتى بادخل قيمه String فى المصفوفه

ففى الاصل انتى محتاجاها String لكن انتى غلطتى وعرفتيها int

فالصح يكون كدا

private String[] a;
a = new String;

وبالنسبه لعمليه البحث بالمساواه

بتكون عمليه المساواه بين String والاخر بالداله equal

كدا

if (a[j].equals(searchkey)) {

لان هذه تفحص اذا كان القيمتين متساويين

والاخرى

if (a[j] == searchkey) {

تبحث اذا كان المكانيين فى الذاكره (Memory ) متساويين ام لا

بالتوفيق:)

Software Developer
Mahmoudkelany.com


 

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…