المعنى النهائي
النهائي هو الكلمة الرئيسية الاحتفاظ في Java ، والتي يمكن أن تعلن متغيرات الأعضاء والأساليب والفئات. بمجرد أن تقتبس البيان كنوع نهائي ، لن تغير هذا المرجع مرة أخرى. سيقوم المترجم بالتحقق من الكود.
المتغير النهائي
أي شخص متغير أو متغير محلي (في الطريقة أو كتلة التعليمات البرمجية يسمى إعلان متغير محلي) لمتغيرات العضوية أو المتغيرات المحلية. فيما يلي مثال على متغير المعدل النهائي:
intvalue النهائي = 1 ؛
نقطة الملحق:
الطريقة النهائية
يمكن أن يعلن النهائي أيضًا الطريقة. يتم إضافة اسم الطريقة مع الكلمة الرئيسية النهائية ، مما يعني أنه لا يمكن إعادة كتابة هذه الطريقة بواسطة الفئات الفرعية. إذا كنت تعتقد أن وظيفة الطريقة كاملة وأن الطريقة لا تحتاج إلى تغيير الطريقة في الفئة الفرعية ، فيمكنك إعلان الطريقة كنوع نهائي.
الطريقة المعلنة حسب النهائي أسرع من الطريقة غير الهامة ، لأنها كانت ملزمة ثابتة عند التجميع ، ولا تحتاج إلى أن تكون ملزمة ديناميكيًا في وقت التشغيل. فيما يلي مثال على الطريقة النهائية:
Public Class Person {public void printname () {system.out.println ("wangzhengyi") ؛}}
الفصل النهائي
يسمى الفئة المعدلة الصفية الفئة النهائية. عادةً ما تكتمل الفصل النهائي ولا يمكن مورراها. العديد من الفصول في Java نهائية ، مثل فئات السلسلة.
واحدة من فوائد الفئات غير المتوفرة هي أنها في حد ذاتها هي أمان مؤشر ترابط. لإنشاء فئات غير متوفرة ، يجب تحقيق الخطوات التالية:
ملاحظة: الفرق بين النسخ الضحلة والنسخة العميقة:
النسخة الضحلة (الاستنساخ الضحل): تحتوي جميع متغيرات الكائن المتكرر على نفس القيمة مثل الكائن الأصلي ، وما زالت مراجع جميع الكائنات الأخرى تشير إلى الكائن الأصلي. بمعنى آخر ، يتم نسخ الأنواع الأساسية فقط من الكائنات ، ولا يزال نوع الكائنات ينتمي إلى الاقتباس الأصلي.
نسخة عميقة (استنساخ عميق): تحتوي جميع المتغيرات النسخ على نفس قيمة الكائن الأصلي ، باستثناء المتغيرات التي تقتبس كائنات أخرى. ستشير المتغيرات التي تقتبس الكائنات الأخرى إلى كائنات جديدة تم نسخها ، ولم تعد الكائنات الأصلية المشار إليها. بمعنى آخر ، ليس فقط الأنواع الأساسية للكائنات ، ولكن أيضًا الكائنات الموجودة في الكائن الأصلي.
أمثلة لا تُنسى:
استيراد java.util.hashmap string getName () {return name ؛} / *** الكائنات المتغيرة: نسخة من كائن الإرجاع* @return* / public hashmap <integer ، string> gethmap () {rashmap <integer ، st. ) tmap = new hashmap <integer ، string> () ؛ ، map.get (مفتاح)) ؛} this.hmap = tmap ؛} /*** تطبيق للنسخ الضحلة* / /* public finalclassexample (int id ، اسم السلسلة ، hashmap <intt eger ، سلسلة> خريطة) {هذا .id = معرف ؛فوائد الكلمات الرئيسية النهائية
مزايا استخدام الكلمات الرئيسية النهائية هي كما يلي: