(1) النهائي: المعدل (الكلمة الرئيسية). إذا تم الإعلان عن الفصل النهائي ، فهذا يعني أنه لا يمكن استخلاص فئات فرعية جديدة ولا يمكن أن يتم مورثها كفئة الوالدين. لذلك ، لا يمكن الإعلان عن فئة مجردة ونهائية. يمكن أن يضمن إعلان المتغيرات أو الأساليب النهائية عدم تغييرها أثناء الاستخدام. يجب أن يكون للمتغيرات المعلنة كنهائي قيمة أولية عند الإعلان ، ولا يمكن قراءتها إلا في المراجع المستقبلية ولا يمكن تعديلها. يمكن أيضًا استخدام الأساليب المعلنة كنهائي فقط ولا يمكن تحميلها بشكل زائد.
(2) أخيرًا: يوفر أخيرًا كتل لأداء أي عملية تطهير أثناء التعامل مع الاستثناء. إذا تم إلقاء استثناء ، فسيتم تنفيذ شرط الصيد المطابق ، وسيقوم عنصر التحكم بإدخال الكتلة أخيرًا (إن وجدت).
(3) الانتهاء: اسم الطريقة. تسمح تقنية Java باستخدام طريقة Finate () للقيام بالتنظيف اللازم قبل أن يقوم جامع القمامة بمسح الكائنات من الذاكرة. يتم استدعاء هذه الطريقة من قبل جامع القمامة عند تحديد عدم الرجوع إلى الكائن. يتم تعريفه في فئة الكائن ، لذلك ترثها جميع الفئات. تتجاوز الفئة الفرعية طريقة اللمسات الأخيرة () لتنظيم موارد النظام أو أداء أعمال التنظيف الأخرى. يتم استدعاء طريقة اللمسات الأخيرة على الكائن قبل حذف جامع القمامة.
ما سبق قد يكون غامضة بعض الشيء ، دعنا نناقشها أكثر تعمقا
1. خصائص مختلفة
(1) النهائي هو الكلمة الرئيسية ؛
(2) اللمسات الأخيرة () هي طريقة ؛
(3) أخيرًا علامة كتلة ، تستخدم في عبارات المحاولة ؛
ثانياً ، الوظيفة
(1) النهائي عبارة عن كلمة رئيسية تستخدم لتحديد الثوابت ، ويتم تخزين الكلمات الرئيسية المحددة بواسطة النهائي في المجموعة الثابتة (سيتم تقديم الاستخدام المحدد للثوابت النهائية أدناه) ؛
(2) يتم تعريف طريقة اللمسات الأخيرة () في الكائن. يتم استخدامه لاستدعاء JVM إلى القمامة جمع الكائن عندما يختفي الكائن "يختفي" ، على غرار المدمر في C ++ ؛ عند المعرفة من قبل المستخدم ، يتم استخدامه لإصدار الموارد التي يشغلها الكائن (مثل تنفيذ عمليات I/0) ؛
(3) يتم استخدام {} أخيرًا لتحديد كتلة الكود والتعاون مع Try {}. بغض النظر عما إذا كان قد تم تنفيذ الكود في المحاولة أم لا (هنا يشير إلى استثناء) ، سيتم بالتأكيد تنفيذ البرنامج في كتلة الكود ؛
3. التفسير التفصيلي
1 تحديد المتغيرات
1.1 عندما يحدد النهائي متغير النوع الأساسي ، يجب أن تكون التهيئة المتغيرة مطلوبة لاستخدامها في أماكن أخرى عند الإعلان أو في المنشئ. لا يمكن تغيير الثوابت المحددة بواسطة هذه الكلمة الرئيسية باستثناء مرحلة التهيئة.
1.2 يحدد النهائي إشارة إلى كائن ما ، وتوافق تهيئة المرجع مع المتطلبات عند تحديد ثابت ؛ يمكن تغيير محتوى الكائن المحدد بواسطة الكلمة الرئيسية ، ولكن لا يمكن تغيير العنوان الذي يشر إليه المرجع ؛
2 تحديد المعلمات
إذا تم تمرير المتغير المحدد بواسطة هذه المعلمة ، فلن تتمكن الطريقة من تعديل محتوى المعلمة (خطأ) ، وهو نفس قواعد التعديل لتحديد المتغير ؛ تمرر طريقة Java القيمة عند تمرير النوع الأساسي في طريقة Java ، وتمرر طريقة Java المعلمة للكائن ؛ <بعد كل شيء ، تعتمد الطريقة على الطريقة في Java على تمرير "نسخة": للنوع الأساسي ، أولاً إنشاء نسخة ، تعيين القيمة التي تم تمريرها للنسخ ، ثم التشغيل على نسخة ؛ بالنسبة لنوع الكائن ، قم أولاً بإنشاء نسخة مرجعية ، وقم بتعيين مرجع الكائن الذي تم تمريره لنسخ>
على سبيل المثال: الطريقة (اختبار int النهائي) ؛
تقول بعض الكتب أن معلمات التعريف النهائي هنا ، وخاصة معلمات الكائن ، مفيدة للغاية ولا يمكنها تغيير محتوى الكائن داخل الطريقة. هذا البيان خاطئ! اتضح أنني أعتقد أيضًا أن هناك بعض خصائص البرمجة الوظيفية بهذه الطريقة. لا يمكنك تعديل محتوى الكائن. هنا لا يزال بإمكانك تعديل محتوى الكائن.
؟ ؟ ما هو استخدام تحديد هذه المعلمة؟ ؟
يولد السلسلة لتكون نهائية!
3 طريقة التعريف
(1) لا يمكن أن يتم مورث الطرق المحددة باستخدام الكلمة الرئيسية النهائية بواسطة الفئات الفرعية ؛
(2) السماح للمترجم بتحويل جميع المكالمات إلى هذه الطريقة إلى سلوك (داخل الخط) ، أي يمكنك نسخ هذه الطريقة مباشرة عند المكالمة بدلاً من إجراء مكالمات الأسلوب الروتيني (حفظ نقاط التوقف ، والضغط على المكدس) ، مما سيزيد من كفاءة البرنامج. ومع ذلك ، إذا كان هناك الكثير ، فإن هذا سيؤدي إلى انتفاخ رمز وسيؤثر على الكفاءة ، لذلك يجب استخدام هذه الطريقة بحذر. .
4 فئة التعريف
لا يمكن أن يرث أي من فئة نهائية من قبل أي شخص ، مما يعني أن هذه الفئة هي فئة أوراق في شجرة الميراث ، ويعتبر هذه الفئة مثالية ولا تتطلب أي تعديل (باختصار ، لا ينصح به)