النهائي يعني حرفيا "الأخير ، النهائي". يتم التعبير عن هذا المعنى أيضًا في جافا.
يمكن استخدام النهائي لتعديل المتغيرات (بما في ذلك سمات الفئة ، وسمات الكائنات ، والمتغيرات المحلية والمعلمات الرسمية) ، والأساليب (بما في ذلك طرق الفئة وطرق الكائن) ، والفئات.
1. فئة التعديل النهائي:
فئة التعديل النهائي تعني أن هذه الفئة لديها بالفعل المعنى "الأخير والنهائي". لذلك ، لا يمكن مورث الفصول الدراسية المعدلة بالنهائي ، أي أنه لا يمكن أن يكون لها فئات فرعية خاصة بها.
إذا ورث العرض فئة تم تعديلها بالنهائي ، فقد يحدث خطأ أثناء التجميع.
2. طريقة التعديل النهائي:
تعني طريقة التعديل النهائي أن هذه الطريقة لديها بالفعل المعنى "الأخير ، النهائي" ، أي أنه لا يمكن إعادة كتابة هذه الطريقة (يمكن زيادة تحميل طرق التعديل النهائي المتعدد).
شيء واحد يجب ملاحظته هنا هو أنه لأن الشرط المسبق للكتابة هو أن الفئة الفرعية يمكن أن ترث هذه الطريقة من الفئة الأصل ، إذا كانت الطريقة المعدلة النهائية في الفئة الأصل لديها أيضًا أذونات التحكم الخاصة بالوصول الخاصة ،
لا يمكن مورث هذه الطريقة مباشرة من الفئة الفرعية. لذلك ، يمكن تحديد نفس اسم الطريقة والمعلمات في الفئة الفرعية في هذا الوقت. في هذا الوقت ، لن يكون هناك تناقض بين إعادة الكتابة والنهائي.
تم إعادة تعريف طرق جديدة في الفئات الفرعية.
يمتد الفئة العامة B إلى {public static void main (string [] args) {} public void getName () {}} الفئة A { /*** بسبب التعديل الخاص ، لا يمكن مورث هذه الطريقة في الفئة الفرعية. لذلك ، يتم إعادة تعريف طريقة getName في الفئة الفرعية ، * تنتمي إلى الفئة الفرعية نفسها ، والتجميع هو طبيعي */private void getName () {}/ * بسبب تعديل PBBLIC ، يمكن للفئة الفرعية أن ترث هذه الطريقة ، مما يؤدي إلى إعادة كتابة الطريقة النهائية للفئة الأم ، والخطأ المترجم.3. متغير المعدل النهائي:
يعني المتغير المعدل النهائي أن هذا المتغير له المعنى "الأخير والنهائي". بمجرد تحديد المتغير النهائي وتهيئته لأول مرة ، لا يمكن تغيير القيمة المتغيرة المعدلة النهائية.
فيما يلي بعض القضايا التي يجب ملاحظة:
1. المتغيرات المعدلة النهائية ، سواء كانت سمات فئة أو سمات الكائنات أو المعلمات الرسمية أو المتغيرات المحلية ، تحتاج إلى تهيئة هذه المتغيرات (أي ، حدد القيمة الأولية لعرضها).
بالنسبة للمعلمات الرسمية التي تم تعديلها بواسطة Final ، فمن السهل فهمها لأنها يتم تمريرها بواسطة المعلمات الفعلية.
بالنسبة للمتغيرات المحلية التي تم تعديلها حسب النهائي ، وهي نفس المتغيرات التي لم يتم تعديلها حسب النهائي ، فإنها تحتاج إلى عرض التهيئة. وهذا يعني أن المتغيرات المحلية تحتاج إلى تهيئة.
بالنسبة لسمات الفئة العامة وسمات الكائنات ، يمكن رؤيتها من عملية تهيئة الفئة والكائن التي يتم تنفيذ التهيئة الافتراضية أولاً. ثم تتم تهيئة المتغيرات مع الواجبات المعروضة مرة أخرى.
ومع ذلك ، بالنسبة لسمات الفئة وسمات الكائن المعدلة حسب النهائي ، إذا لم يتم عرض التهيئة ، فإن القيمة الافتراضية ستكون قيمة التهيئة الافتراضية ، والتي تتناقض مع نقطة البداية للنهائي نفسه. لذلك ، فإن بناء جملة Java ينص على:
يجب عرض سمات الفئة والسمات المتغيرة المعدلة حسب النهائي وتهيئتها.
بالإضافة إلى ذلك ، سواء بالنسبة لأنواع البيانات الأساسية أو أنواع البيانات المرجعية ، يتم عرض المتغيرات النهائية المعدلة لأول مرة ولا يمكن تعديلها بعد التهيئة. من السهل فهم أنواع البيانات الأساسية. للرجوع إليها
بالنسبة لنوع البيانات ، يشير المتغير المرجعي إلى الكائن الفعلي ، لكنه يخزن عنوان الكائن المشار إليه. لذلك ، لا يمكن تعديل قيمتها لا تعني أنه لا يمكن تعديل الكائن الذي يشير إليه.
4. "استبدال الماكرو"/"متغير الماكرو" الناجم عن التعديل النهائي
في Java ، يشير متغيرات الماكرو/استبدال الماكرو إلى حقيقة أنه في رمز Java ، يمكن استبدال بعض المتغيرات مباشرة بقيمها الخاصة خلال فترة التجميع وتجميعها في ملف .class. لذلك ، لم يعد هذا التغيير موجودًا في ملف .class المترجم.
في متغيرات سلسلة النوع ، غالبًا ما يتم مواجهة المواقف التالية:
اختبار الفئة العامة {public static void main (string [] args) {String Country = "China" ؛ اسم السلسلة = "qqyumidi" ؛ سلسلة userInfo = country + name ؛ // بعد التجميع ، لا تزال متغيرات البلد والاسم هنا ، string user = "China" + "qqyumidi" ؛ // بعد التجميع ، يصبح Chinaqyumidi مباشرة}}في السطر 9 من الكود أعلاه ، فإن النتيجة المتغيرة المترجمة هي مباشرة chainqyumidi. في السطر 8 ، نظرًا لأن البلد والاسم متغيرون عاديون ، لا يمكن للمترجم تحديد قيمة المستخدم في وقت الترجمة مباشرة ، لذلك
النتيجة بعد التجميع هنا ليست مباشرة chainqyumidi.
ومع ذلك ، إذا كنت ترغب في تمثيل الكود في السطر 8 مباشرة على أنه ChinaQQyumidi خلال فترة الترجمة ، فأنت بحاجة إلى استخدام المعدل النهائي لتعديل البلاد والاسم المتغيرات.
السبب: يمكن للمتغير الذي تم تعديله بواسطة المعدل النهائي تحديد قيمته مباشرة خلال فترة التجميع بسبب خصائصه الخاصة ، وهذه القيمة غير قابلة للتغيير. أثناء عملية التجميع ، يمكن تحويل متغيراتها مباشرة إلى قيمها للتمثيل.
اختبار الفئة العامة {public static void main (string [] args) {Final String Country = "China" ؛ اسم السلسلة النهائية = "qqyumidi" ؛ سلسلة userInfo = country + name ؛ // بعد التجميع ، فهو chianqyumidi}} مباشرةما ورد أعلاه هو المحتوى الكامل لنقاط المعرفة النهائية في Java (مقال يجب قراءته) الذي يجلبه لك المحرر. آمل أن يكون ذلك مفيدًا لك ودعم wulin.com أكثر ~