مفهوم final في جافا
كلمة ( final ) هي كلمة محجوزة في لغة جافا و تعني أنّ هذا الشيئ أو المتغير الذي يتم تعريفه على أنه final هو شيئ منتهي لا يمكننا تعديل قيمته. و الدالة المعرفة من نوع final لا يمكننا تطبيق مبدأ Override على هذه الدالة و لا يمكننا تعديل قيمة المتغير المعرف من نوع final.
الأمور التي تلزم تعريف شيئ نوع final
- في حال أردنا تعريف متغير و نعطيه قيمة مرة واحدة فقط.
- إذا أردنا إنشاء كلاس لا يرث.
- لمنع Override في حال إنشاء دالة لا يمكن تعريفها من جديد في الكلاس الذي يرث الدالة.
مثال 1
package a1; class B { final int=90; } public class A1{ public static void main(String []args){ B a1=new B(); a1.a=80; } }
لدينا كلاس B و به متغير عددي a من نوع final و قيمته 90 هذا يدل أن المتغير a متغير لا يمكن التعديل على قيمته طالما أنه معرّف final. و نزلنا للبرنامج الرئيسي لنعطي قيمة له و هي 80 لكنه سوف يعطينا خطأ لأنه من نوع final لا نستطيع إعادة تعيين القيمة.
package a1; class B { final int=90; final void show() { System.out.println("welcome in nusur tech"); } } public class A1 extends B{ void show() { } public static void main(String []args){ } }
لدينا كلاس B و به متغير عددي a من نوع final و قيمته 90 هذا يدل أن المتغير a متغير لا يمكن التعديل على قيمته طالما أنه معرّف final. ثم أنشأنا دالة نوعها ايضاً final و وضعنا لها امر طباعة تطبعه هذه الدالة و هو welcome in nusur tech. ثم بعد ذلك اورثنا كلاس إبن و هو A1 من الكلاس B ثم حاولنا عرض الوراثة بتطبيق مبدأ Override لم يقبل و السبب أنها من نوع final لا يمكن تطبيق مبدأ Override عليها لأنه من شروط final.