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

[تنبيه - عنوان غير مناسب : ]ماهو الخطأ في البرنامج

بدأه AbuEmad545 في 20 يونيو 2010 · 14 رد · 686 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

شباب أنا بدي أعرف شو هو الخطأ في هذا الكود

class test
	{
	static int x;
	int y ;
	void sum()
		{
		x+=y;
		}
	}


class abc extends test
	{
	int y;
	void add ()
		{
		System.out.println("WWW");
		}
	}

الخطأ هو في الـ method sum تقريبا بس ما أدري ليش

ياريت تقولولي ليش خطأ

وشكرا

#2

تصحيح الكود والمشاركه

هنـــــا

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 20 يونيو 2010 في 18:35

Software Developer
Mahmoudkelany.com


 

#3

رجاءً, ضع الكود كاملاً مع main.

#4

جزاك الله حير أخي

يعني ما أقدر أستخدم متغير static إلا داخل داله static

طب أخوي ليش الـ compiler ما يعرف على هذا النوع من الأخطاء , ويتعرف على العكس إذا كانت الداله static والمتغير non-static

Khaled.Alshaya كتب:

رجاءً, ضع الكود كاملاً مع main.

أخي غرضي في هذا الجزأ فقط

تم تعديل هذه المشاركة بواسطة AbuEmad545 في 20 يونيو 2010 في 14:06

#5

لا خطأ فيها

يبدو انك تستدعي الدالة sum من دالة static مياشرة بدون تكوين كائن من abc

يعني اذا اردت استدعاء sum من الدالة الرئيسية static main

يجب ان يكون كالتالي في داخل دالة main

abc test1=new abc();
abc.sum();

لكن للتصحيح

يجب ان تكون اسماء ال classes تبدأ بحرف كبير

اي Abc not abc

Test not test

بالتوفيق

#6

هل عملت initialization للمتغيرين x & y أو أنك لم تعطهما أية قيمة؟؟

سيكون الأمر أوضح لو وضعت رسالة الحطأ التي تظهر لك

−1
#7

تصحيح الكود

متاسف على التاخير

كنت برد من على الموبيل

class Test {

    static int x;
    int y;

    void sum() {
        x += y;
        System.out.println(x);
    }
}

والـ class الاخرى Abc

اكتبها فى ملف لوحده

class Abc extends Test {

    void add() {
        System.out.println("WWW");
    }

    public static void main(String a[]) {
        Abc n = new Abc();
        n.add();
        n.sum();

    }
}

Software Developer
Mahmoudkelany.com


 

#8

جزاكم الله خير إخوتي

الصراحه هذا سؤال جانا في إختبار مادة oop على الصيغه الموجوده

أنا عملت إن الكود صحيح بس الدكتور مديني خطأ فحبيت أعرف وش الخطأ إلي فيه

إلى الآن لم أصل إلى جواب مقنع .. حاولت الوصول للدكتور بأي طرقه لم أستطع ويكره إختبار الفاينل في الماده

عواتكم بالتوفيق

#9

طب إخوتي

شوفو هذا البرنامج كامل

class test
	{
	static int x;
	int y ;
	void sum()
		{
		x=x+y;
		System.out.println(x);
		}
	}


class abc extends test
	{
	int y;
	void add ()
		{
		System.out.println("WWW");
		}
	}

class ad
	{
		public static void main (String [] s)
			{
				abc a = new abc ();

				a.x=3;
				a.y=5;
				a.sum();
				System.out.println(a.x);
				System.out.println(a.y);

			}
		}

الداله sum ليس لها أي تأثير في الكود . لماذا ؟

يعني قيمة x ما تتغير عند طلب الدالة

the output of this pro.

3

3

5

herch كتب:

هل عملت initialization للمتغيرين x & y أو أنك لم تعطهما أية قيمة؟؟

سيكون الأمر أوضح لو وضعت رسالة الحطأ التي تظهر لك

أخي القيم الإبتدائية في الجافا تكون صفر إذا لم أحددها

الكومبايلر لا يظهر أي خطأ

تم تعديل هذه المشاركة بواسطة AbuEmad545 في 20 يونيو 2010 في 23:43

#10

عندما تعمل a.y = 5 فإنك عيرت الحقل y الخاص بالفئة abc، وعندما تنادي على sum، فإنها تستعمل الحقل y الخاص ب test، والذي يساوي 0.

class test {
	static int x;
	int y ;
	void sum() {
		x=x+y;
	}
}


class abc extends test {
	int yy;
	void add () {
    	System.out.println("WWW");
	}
}

class ad {

	public static void main (String [] s) {
    	abc a = new abc ();
    	a.x=3;
    	a.y=5;
    	a.sum();
    	System.out.println(a.x);
    	System.out.println(a.y);

	}
}

تم تعديل هذه المشاركة بواسطة herch في 21 يونيو 2010 في 00:36

1
#11

لم أغير بالكود, و لكن قمت بإضافة comments للتوضيح (و إن كانت بالإنجليزيه)

 class test {
	static int x;
	int y;

	void sum() {
		x = x + y;
		System.out.println(x);
	}
}

class abc extends test {
	int y;

	void add() {
		System.out.println("WWW");
	}
}

class ad {
	public static void main(String[] s) {
		abc a = new abc();

		a.x = 3; // x defined in test class is now equals 3
		a.y = 5; // y defined in abc class is now equals 5, remember, y defined
					// at class test is still 0, and here y at class abc is said
					// to hide y defined at class test
		// see: http://java.sun.com/docs/books/tutorial/java/IandI/hidevariables.html

		a.sum(); // x = 3 +0 = 3
		// and 3 will be printed
		System.out.println(a.x); // 3 will be printed
		System.out.println(a.y); // 5 will be printed

	}
}

تم تعديل هذه المشاركة بواسطة هويدي في 21 يونيو 2010 في 02:42

#12

الأخ الكريم/الأخت الكريمة

السلام عليكم ورحمة الله وبركاته

مرحباً بكم في منتدى الفريق العربي للبرمجة

نود تنبيهك أن العنوان غير مناسب.

الرجاء اختيار عنوان مناسب أكثر في مواضيعك القادمة، وهذا بمثابة إشعار للأهمية.

وفي حال التكرار سيتعرض موضوعك للإغلاق والحذف!!!

قواعد المشاركة

/index.php?showtopic=29343

شاكرين لكم حُسن تعاونكم

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#13
 a.y=5;

هذه الجزئيه تنادى على المتغير y الموجود فى الـ class abc

والمتغير هذذا قيمته 0

وعندما تنادى الداله sum فانها تغير القيم التاليه

x الموجوده فى الداله test

y الموجوده فى الداله abc

لذلك تكون قيمه x = 0 + 3

هكذا تكون قيمه x = 3

ويتم طباعه 3

والامر

System.out.println(a.x);

يطبع قيمه 3 = x الموجوده فى الـ class test

والامر

System.out.println(a.y);

يطبع قيمه y = 5 الموجوده فى الـ class abc

ولا يطبع قيمه الـ y الموجوده فى الـ class test

لان المتغير y حدث له override فى الـ class abc

سلام عليكم

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 21 يونيو 2010 في 14:34

1

Software Developer
Mahmoudkelany.com


 

#14

جزاكم الله خيرا جميعكم إخوتي

اليوم بعد الإختبار حصلت الدكتور وتناقشت معاه في الكود هذا

وإلي حصل إني غلبته وطلع جوابي صح وهو كان يقصد إن الداله sum تكون static بس غلطه مطبعيه خخخخخخ

#15
AbuEmad545 كتب:

جزاكم الله خيرا جميعكم إخوتي

اليوم بعد الإختبار حصلت الدكتور وتناقشت معاه في الكود هذا

وإلي حصل إني غلبته وطلع جوابي صح وهو كان يقصد إن الداله sum تكون static بس غلطه مطبعيه

خخخخخخ

هههههه معلش

الحمدلله

اهم حاجه تكون استفدت من الدكتور و منا

‏ سلام عليكم

AbuEmad545 كتب:

جزاكم الله خيرا جميعكم إخوتي

اليوم بعد الإختبار حصلت الدكتور وتناقشت معاه في الكود هذا

وإلي حصل إني غلبته وطلع جوابي صح وهو كان يقصد إن الداله sum تكون static بس غلطه مطبعيه

خخخخخخ

هههههه معلش

الحمدلله

اهم حاجه تكون استفدت من الدكتور و منا

‏ سلام عليكم

Software Developer
Mahmoudkelany.com


 

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

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

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

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

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