السلام عليكم
مالفرق بينهما
قرأت ان الfinal للمتغيرات الغير قابله للتعديل
لكن عند اسدعائها مع الobject تبين لي انه من الممكن تعديلها
ام final static
فلم اتمكن من تعديلها
final للثوابت, التي لا يتم تعديلها بعد اول مرة يتم فيها اعطائها قيمتها.
Static تعني ان المتغير يرتبط بل Class وليس ال Object, يعني عندما تعرف متغير كـ Static, فيكون هذا المتغير مشترك بين جميع ال Object التي تم عملها عن طريق هذه الكلاس.
وتستطيع استدعاء ال Static من خلال اسم الكلاس : Abc.X
حسناً, جميعنا نعلم ان درجة غليان الماء = تقريباً 100 درجة, ونعلم ايضاً كمبرمجين ان هذه القيمة ثابتة, ولا داعي ان تتغير في البرنامج ابداً,
لذلك نستعمل final int waterBoile = 100;
حسناً, لو حاولنا خلال الكود ان نقوم بتغيير هذه القيمة, مثلاً waterBoile = 80;
سيظهر لنا Error يفيد بأن هذه القيمة لا يمكن تعديلها لانها final.
حسناً لنفرض اننا عرفنا المتغير هكذا, final int waterBoile; بدون ان نسند له قيمة.
لو حاولنا خلال الكود ان نقول waterBoile = 80; سيتم تنفيذ الكود بدون اي خطأ, الان نحن اعطيناها قيمة اول مرة,
لكن لو حاولنا بعد ذلك ان نعدل هذا المتغير ليصبح waterBoile = 50; سيظهر لنا Error
التعليقات