1. التعديل النهائي
لا يمكن وراثة الفصول التي تم تعديلها حسب النهائي ، لذلك لا يمكن كتابة أساليب الأعضاء في الفصل النهائي ، ولا تحتوي الفئات المعدلة على الكلمات الرئيسية النهائية على فئات فرعية ، لذلك لا يمكن تغيير تفاصيل تنفيذ الفصل ولا يمكن توسيعها. سيتم تحديد جميع أساليب الأعضاء في الفصل النهائي ضمنيًا كطرق نهائية ، ويمكن ضبط متغيرات الأعضاء في الفصل النهائي على النهائي حسب الحاجة.
2. طريقة التعديل النهائي
إذا تم تعديل طريقة في الفئة بواسطة الكلمة الرئيسية النهائية ، فلن تتمكن الفئة الفرعية من الكتابة فوق الطريقة ولا يمكن ورثها إلا بالفئة الفرعية. إذا كانت هناك طريقة في الفئة الأصل لا تريد الكتابة فوقها من خلال الفئة الفرعية ، فيمكن تعريف الطريقة كنوع نهائي. بالإضافة إلى ذلك ، لا يُسمح بالطريقة الخاصة في الفئة الأصل (أي الطريقة التي تم تعديلها بواسطة الكلمة الرئيسية الخاصة) بإفراطها في الكتابة من قبل الفئة الفرعية. لذلك ، فإن الطريقة المعدلة بواسطة الكلمة الرئيسية الخاصة في الفئة الأصل هي الافتراضية للنوع النهائي. الطريقة التي يتم تعديلها بواسطة الكلمة الرئيسية النهائية لها الخصائص التالية:
يتم قفل هذه الطريقة ، مما يمنع أي فئة من الميراث من تعديل معناها وتنفيذها ؛
فعال. عندما يواجه المترجم يدعو الطريقة النهائية ، فإنه سوف يدخل الآلية المدمجة ، مما يحسن كفاءة التنفيذ بشكل كبير ؛
بالإضافة إلى ذلك ، لا يمكن إخفاء الطرق الثابتة التي تستخدم التعديل النهائي في فئات فرعية من فئتهم التي ينتمون إليها ؛
3. متغيرات التعديل النهائي
معنى نهائي الكلمة الرئيسية هو "هذا لا يمكن الاستغناء عنه" أو "الحالة النهائية" ؛
فلماذا توقف عن التغيير؟
قد يمنع مخترع لغة Java التغييرات بسبب غرضين:
أ. قضايا الكفاءة:
لا يُسمح لبعض الطرق لفئات معينة في JDK بالاكتب من من قبل المستخدمين. قد يعتقد المصمم أن الطريقة المستخدمة هي أفضل طريقة.
إذا كان المستخدم يغطيه على انفراد ، أو يغطيه بسبب الإهمال ، فسيؤثر ذلك على إمكانيات النظام في JVM أو النظام ؛
متطلبات التصميم:
كما نعلم جميعًا ، يجب أن تستخدم بعض الحالات الكلمات الرئيسية النهائية ، مثل تمرير المعلمة من الفئات الداخلية المجهولة في هذه الطريقة.
يقول بعض الناس أن المتغيرات النهائية غير قابلة للتغيير بعد المهمة.
فماذا يعني هذا بالضبط هذا التغير؟
يشير هذا الثابت إلى مرجع وعنوان ومحتوى الكائن المشار إليه لا يزال قابلاً للتغيير.
وهذا يعني أن هذا المتغير النهائي يشير دائمًا إلى كائن ، هو مؤشر ثابت ، وليس مؤشرًا إلى ثابت.
(1) لا يمكن تغيير نوع البيانات الأساسية المعدلة بواسطة الكلمة الرئيسية النهائية بمجرد تهيئتها ؛
(2) إذا كان متغيرًا من النوع المرجعي ، فلا يمكن السماح له بالإشارة إلى كائن آخر بعد تهيئته ، ولكن يمكن أن يتغير محتوى الكائن الذي يشير إليه المرجع. والسبب هو: عنوان الكائن المرجعي المخزن في ذاكرة الكومة لنوع البيانات المرجعية. بعد التعديل النهائي ، لا يمكن تغيير مساحة ذاكرة الكومة التي يتم توجيهها إلى المرجع (أو عنوان ذاكرة الكومة المخزنة في المرجع).
عند استخدام النهائي لتعديل متغير عضو غير منتظم لفئة ما ، هناك طريقتان لتهيئة متغيرات الأعضاء:
(3) تهيئة أثناء الإعلان (4) تهيئة عند إعلان متغير. يسمى المتغير فارغًا فارغًا ، أي الفراغ النهائي ، ولكن يجب تعيين القيمة الأولية لهذا المتغير في جميع مُنشئات الفئة حيث يوجد المتغير.
عند استخدام النهائي لتعديل متغير العضو الثابت لفئة ما ، هناك طريقتان لتهيئة متغير الأعضاء الثابت:
(5) تهيئة عند إعلان (6) تهيئة في كتلة التهيئة الثابتة عند تعديل المتغيرات الثابتة النهائية للواجهة ، هناك طريقة واحدة فقط للتهيئة:
(7) تهيئة عند الإعلان. عند استخدام النهائي لتعديل متغيرات الأعضاء المحلي ، تحتاج فقط إلى التأكد من تهيئة المهمة قبل الاستخدام.
باختصار ، لا يمكن تهيئة المتغيرات التي تم تعديلها بواسطة الكلمة الرئيسية النهائية عند الإعلان ، ولكن يجب التأكد من تهيئة المتغير قبل الاستخدام. بمجرد تهيئته وتعيينه ، لا يمكن إعادة تعيينه. حاول تحليل نتائج إخراج البرنامج:
اختبار الفئة العامة {public static void main (string [] args) {string a = "hello2" ؛ السلسلة النهائية B = "Hello" ؛ سلسلة d = "hello" ؛ سلسلة C = B + 2 ؛ سلسلة e = d + 2 ؛ system.out.println ((a == c)) ؛ system.out.println ((a == e)) ؛ }} 4. معلمات التعديل النهائي
عندما تكون معلمة الطريقة هي النوع النهائي ، يمكنك قراءة هذه المعلمة واستخدامها ، ولكن لا يمكنك تغيير قيمة المعلمة. يتم إنشاء هذا المتغير عندما يتم استدعاء الطريقة ويتم تهيئتها إلى قيمة المعلمة المقابلة. لا يمكن تغيير قيمتها قبل تنفيذ هيئة الطريقة. لا يمكن تغيير قيمة المعلمة لنوع البيانات الأساسي المعدلة مع الكلمة الرئيسية النهائية. لا يمكن أن يكون نوع البيانات المرجعية المعدلة مع الكلمة الرئيسية النهائية هو المرجع الذي يشير إلى كائن آخر أو تعيين قيمة إلى NULL مرة أخرى ، ولكن يمكن تغيير محتوى الكائن المرجعي باستخدام هذا المرجع. الغرض من النهائي في تعديل المعلمات ليس منع تشغيل المعلمة من تغيير قيمة المتغير المقابل خارج الطريقة داخل الطريقة المدعو ، ولكن لمنع تشغيل المعلمة داخل الطريقة ، مما يؤثر على القيمة الأولية عند تمرير المعلمة. علاوة على ذلك ، لا يمكن تعديل المعلمات في الطريقة مع الكلمة الرئيسية النهائية منع محتوى قيمة المعلمة التي تم تمريرها من خارج الطريقة من تغييرها. للحصول على التفاصيل ، يرجى الرجوع إلى شرح نوع بيانات مرجع التعديل النهائي.