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

[تنبيه - عنوان غير مناسب : ]ايجاد النقص في برنامج

بدأه abedo tany في 9 مايو 2010 · 3 رد · 359 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

انا قمت بتكوين برنامج لحاسبة بسيطة جدا ولكن لم اعرف ماهو النقص لحصول على الناتج وهدا البرنامج

/**
   Calculator class represents simple calculator.
*/

public class Calculator
{
     private double num1;
	  private double num2;
	  private double result;

	  //Default c0nstractor
	  public Calculator()
	  {

	     //initialise attributes by default value (hard-coding)
		  num1 = 8;
		  num2 = 5;
		  result = 0;
		}
		//Add
		public void add()
		{
		 result = num1 + num2;
		}
		//minus
		public void  minus()
		{
		   result = num1 - num2;
		}
		//multiply
		public void multiply()
		{
		  result = num1 * num2;
	   }
		//divide
		public void divide()
		{
		  result = num1/num2;
		}
		//remaindder of num1/num2
		public void remainder()
		{
		  result = num1%num2;
		}
		public static void main(String [] args)
		{

		//print out the result
			  System.out.println("Result = "  + result);


	   } 
}

وبارك الله فيكم

تم تعديل هذه المشاركة بواسطة {هويدي} في 9 مايو 2010 في 21:55

#2

عدل الدالة main لتصبح كالتالي:

public static void main(String[] args) {

		// ERROR: CANNOT access non-static field `result` from static method `main` 
		//System.out.println("Result = " + result);
		Calculator c = new Calculator();
		c.add();
		System.out.println(c.result);

		c.divide();
		System.out.println(c.result);

		// NOTE, it is more simple to make the operation methods (add, divide, etc.. ) to return the value of result

	}
#3

اخي الكريم

عند تشغيل برنامج مكتوب في الجافا

السطور الوحيدة التي يتم تنفيذها هي السطور الموجودة داخل المثد main

فلذلك برنامج الحالي

السطر الوحيد الموجود في المين هو

System.out.println("Result = "  + result);

ولذلك عندما تقوم تشغيل البرنامج فالبرنامج سيقوم بطباعة النتيجة التالية اذا ما جعلت متغير الرزولت ستاتك

Result = 0

طبعاً حالياً متغير الرزولت ليس استاتك لذلك لا يمكنك استدعاءه من المثد مين وسيظهر لك خطأ عند محاولة ترجمة الكود

اذا أردت البرنامج أن ينفذ أي مثد من مثداتات الكلاس عليك استدعاء المثد المراد تنفيذها داخل المين

مثلاً لو أردت تنفيذ مثد الجمع add

فأولاً لإن المثد main هي static

عليك أن تنشئ أوبجكت من كلاس الكاكليتر

Calculator cal = new Calculator();

ثانياً:- عليك ان تستدعي الدالة المراد تنتفيذها

cal.add();

ثالثاً:- يمكنك طباعة النتيجة بالطريقة التالية

System.out.println("Result = "  + cal.result);

فالمثد مين كاملة ستكون

                public static void main(String [] args)                {
Calculator cal = new Calculator(); 

cal.add();

System.out.println("Result = "  + cal.result);
}

لا بد من صنعاء وان طال السفر

#4

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

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

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

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

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

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

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

/index.php?showtopic=29343

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

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

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

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

728x90.png

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

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

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

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

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