كل متغير في برامج الجافا له نطاق 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 */ } }
0 تعليقات