المتغيرات في لغة الجافا variables

المتغيرات

في لغة الجافا لكل متغير نوع معين ، عند تعريف المتغير يتم وضع نوعه قبل اسم المتغير ، وهذه بعض الأمثلة على ذلك :
 ;double salary
 ;int vacationDays
 ;long earthPopulation
 ;boolean done
مع ملاحظة الفاصلة المنقطة (semicolon) عند نهاية كل تعريف ، و هي ضرورية لإنهاء كل جملة يُراد تنفيذها .
المتغير يجب أن يبدأ بحرف و أن يتكون من سلسلة من الأحرف(letter) أو الأرقام(digit) بدون مسافات فيما بينها.
مصطلح  الأحرف (letter) و الأرقام (digit) في لغه الجافا يتضمن معنى أوسع من باقي لغات البرمجة. فالمقصود بالأحرف (letter) في الجافا: ( 'A' إلى 'Z') و( 'a' إلى 'z') و '_' وأي رمز آخر مخصص يمثل حرفاً في اللغات الأخرى ،  وهنا بعض الأمثلة لتوضيح هذه الفكرة بشكل أفضل :
بإمكان مستخدمي اللغة الألمانية استعمال حرف ' ä ' كمتغير داخل البرنامج ، وعلى سبيل المثال أيضاً اليونانيون يستطيعون استعمال'  π '.
و كذلك الأرقام (digit) فالمقصود منها في الجافا : (0 - 9) أو أي رمز مخصص يمثل رقماً في أي لغة أخرى مثل (+) و (@) فهذه الرموز بالإضافة إلى المسافة (space) لا يُمكن استعمالها لتمثيل اسم متغير .
جميع الحروف أو الرموز التي تكوّن اسم المتغير تعتبر عنصراً هامّاً في تمييزه من قبل الجافا و كذلك حالة الأحرف   (upper case) أو (lower case).
مع العلم بأن هناك كلمات محجوزة لعمليات خاصة من قبل الجافا لا يجوز للمبرمج استعمالها كإسم لمتغير. 
ويمكنك تعريف أكثر من متغير في سطر واحد ثم وضع فاصلة منقطة في نهاية السطر ، مثال :
 ; int  i , j   
ولكن هذه الطريقة غير محبذة لأن تعريف كل متغير في سطر مخصص له يجعل البرنامج أسهل للقراءة.

تهيئة المتغيرات

بعد الانتهاء من تعريف اسم المتغير و نوعه يجب أن يتم تهيئته للاستخدام وذلك عن طريق ربط هذا المتغير بقيمة معينة ، و يتم ذلك من خلال كتابة الجملة التي تربط هذا المتغير بالقيمة المخصصة له و التي تسمى بالـ  (assignment statement). لا تنسى أنه من غير الممكن أن يتم استخدام متغير لم يتم ربطه بأي قيمة. في المثال التالي سيُظهر لك الجافا أن خطأً ما قد تم ارتكابه في هذه السطور (error message):
 ;int vacationDays
 ;(System.out.println(vacationDays
يمكنك أن تربط قيمة معينة بمتغير تم تعريفه مسبقاً في البرنامج وذلك عن طريق وضع اسم المتغير على اليسار ومن ثم تضع علامة (=) و من ثم تضع القيمة المراد استخدامها على يمين علامة الـ (=) ، مثال على ذلك :
 ;int vacationDays
 ;vacationDays = 12
ويمكنك أيضاً أن تقوم بتعريف متغير و ربطه بقيمة معينة في نفس الوقت ، مثال :
 ;int vacationDays = 12
ومن الجدير بالذكر أنه بإستطاعتك أن تقوم بتعريف متغير في أي مكان تريده من البرنامج الذي تقوم بكتابته ، مثال :
 ;double salary = 65000.0
 ;System.out.println(salary)
 ;int vacationDays = 12
يعتبر من الأفضل في الجافا أن تقوم بتعريف المتغير بالقرب من المكان الذي يتم استخدامه فيه.

الثوابت

في الجافا تُستخدم كلمة (final) للدلالة على ثابت ، على سبيل المثال :
Public class Constants 
      }
public static void main (String[] args)
      }
 ;final double CM_PER_INCH = 2.54
 ;double paperWidth = 8.5
 ;double paperHeight = 11
 {
;  System.out.println("paper size in centimeters:" + paperWidth * CM_PER_INCH + "by" + paperHeight  * CM_PER_INCH )
{
استخدام كلمة final يمكننا من أن نعرف متغيراً و  نوضح القيمة التي يحملها مرة واحدة فقط و ستبقى هذه القيمة ثابتة ولن تتغير حتى نهاية البرنامج. ومن العادات المتبعة غالباً في الجافا أن يتم تسمية الثوابت بحروف حالتها (upper case).
غالباً في الجافا نجد بأن الأكثر شيوعاً هو أن يتم تعريف ثوابت يمكن استخدامها في أكثر من (method) والتي تنتمي إلى نفس الـ   (class)و عادة ما تسمي هذه الثوابت بـ ( class constants). عليك أن تعرف الـ (class constant)  بـكتابة هذه الكلمتين static final .
هنا مثال يوضح استخدام الـ (class constants):
public class Constants2
    } 
public static void main (String[] args) 
 {
 ;double paperWidth = 8.5
 ;double paperHeight = 11
 ; (System.out.println("paper size in centimeters:" + paperWidth * CM_PER_INCH + "by" + paperHeight  * CM_PER_INCH 
 }
 ;public static final double CM_PER_INCH = 2.54
 {
لاحظ أن تعريف الـ (class constant)  يظهر خارج الـ (main method)، وذلك لكي نمَكنّ من استخدام هذا الثابت من قِبَل (methods) أخرى تنتمي إلى هذا الـ (class) نفسه.  هناك معلومة أخرى يجب توضيحها وهي أنه إذا تم كتابة كلمة (public) من ضمن تعريف الـ(class constant) فإن ذلك سيمَكِّننا من استخدام هذا الثابت للـ (methods) التي تنتمي إلى (classes) أخرى، كما هو الحال في المثال الذي ذكرناه في الأعلى Constants2.CM_PER_INCH
المرجع : Horstmann, Cay S., 1959- Core Java Volume 1 Fundamentals 8th edition