كل متغير في برامج الجافا له نطاق scope، المقصود بالنطاق هنا هو الاماكن التي نستطيع استخدام المتغير او الوصول اليها (access)، هناك ثلاثة انواع من المتغيرات في الجافا:

  • المتغيرات الكائنية/المتغيرات الاعضاء (instance variables/member variables): وهي المتغيرات التي يتم تعريفها داخل ​الصنف وخارج ​الدوال /الطرق وذلك النوع نستطيع ان نصل اليه في كل مكان في الصنف (class) اي داخل الطرق (methods) وخارجها.
  • متغيرات الصنف (class variables): وهي تشبه متغيرات الاعضاء من حيث النطاق لكن يسبقها كلمة static.
  • المتغيرات المحلية (local variables): و هي المتغيرات التي يتم تعريفها داخل ​الدوال ويكون نطاقها يتم تحديده بالفقرة Block المعرف فيها وما بداخلها من فقرات.
ملحوظة: هناك فرق بين المتغيرات الكائنية (instance variable) و متغيرات الصنف سيتم شرحها عند التحدث عن البرمجة الكائنية (OOP)
ملحوظة: يجب ملاحظة انه داخل الفقرات (Blocks) يجب ان يتم تعريف المتغير قبل استخدامه اي في السطور السابقة له.

يجب ملاحظة انه اذا قمنا باستخدام ​متغير في مكان ليس في نطاقه (scope) سيصدر البرنامج خطأ (error).

مثال

في المثال التالي، نقوم بتعريف 4 ​متغيرات في عدة اماكن مختلفة من الكود ونضع في التعليقات comments كل المتغيرات التي يمكن ان نصل اليها (access) في الكود او بما يسمى بنطاق المتغير

class ClassScopes{
	int variableA;// memeber variable نعرف 
	
	
	public void methodA(){
		/*
		المتغيرات التي نستطيع استخدامها هنا
		variableA
		*/
		
		int variableB;// local variable نعرف 
		
		/*
		المتغيرات التي نستطيع استخدامها هنا
		variableA & variableB
		*/
		while(true){
			/*
			المتغيرات التي نستطيع استخدامها هنا
			variableA & variableB
			*/
			
			int variableC; // local variable نعرف 
			
			/*
			المتغيرات التي نستطيع استخدامها هنا
			variableA & variableB & variableC
			*/
			
		}
	}
	
	
	
	public void methodB(){
		/*
		المتغيرات التي نستطيع استخدامها هنا
		variableA
		*/
		
		int variableD; // local variable نعرف 
		
		/*
		المتغيرات التي نستطيع استخدامها هنا
		variableA & variableD
		*/
		
	}	
}

guest
0 تعليقات
Inline Feedbacks
اظهر كل التعليقات