المعدل النهائي:
يجب أن يكون لمتغيرات الأعضاء المعدلة النهائية قيمة أولية يحددها المبرمج بشكل صريح.
حقل الفئة: يجب تحديد القيمة الأولية في كتلة تهيئة ثابتة أو عند الإعلان عن الحقل.
حقل المثيل: يجب الإعلان عن الحقل في كتلة تهيئة غير ثابتة أو يجب تحديد القيمة الأولية في المُنشئ.
المتغيرات المحلية النهائية: يجب أن تتم تهيئتها بشكل صريح بواسطة المبرمج.
ما الفرق بين المتغيرات الأساسية المعدلة النهائية ومتغيرات النوع المرجعي؟
المتغيرات الأساسية التي تم تعديلها بواسطة Final: لا يمكن إعادة تعيين المتغيرات الأساسية.
المتغير المرجعي المعدل النهائي: من المؤكد فقط أن العنوان المشار إليه بواسطة هذا النوع المرجعي لن يتغير، أي أنه يشير دائمًا إلى نفس الكائن، ولكن يمكن أن يتغير هذا الكائن تمامًا.
انسخ رمز الكود كما يلي:
/**
*/
import java.util.*;
عرض الطبقة العامة5
{
الفراغ العام الثابت الرئيسي (String[] args)
{
النهائي ب ب = الجديد ب(22);
ب.test();
// قم بتغيير القيمة بشكل قانوني، ولكن لا تزال تشير إلى نفس المرجع
b.setAge(20);
System.out.println(b.getAge());
// غير قانوني
// ب = فارغ؛
b.test2();
}
}
/**
يعدل fianl متغيرات الأعضاء
*/
فئة أ
{
//شرعي
كثافة العمليات النهائية أ = 10؛
// حدد القيمة الأولية في المنشئ أو كتلة التهيئة
السلسلة النهائية؛
كثافة العمليات النهائية ج؛
النهائي الثابت المزدوج د؛
{
str = "مرحبًا";
//غير قانوني
// أ = 100؛
}
ثابت
{
د = 100؛
}
// يمكن للمنشئ تحديد القيم الأولية للحقول غير المحددة في كتلة التهيئة
عامة ()
{
// غير قانوني
// str = "ddd";
ج = 1000؛
}
ChangFinal المزدوج العام ()
{
// لا يمكنك تحديد قيمة أولية للنهائي بالطريقة العادية
// إرجاع د = 1000.90؛
العودة 0؛
}
}
/**
يعدل fianl كائنات المصفوفة
*/
الفئة ب
{
عمر خاص؛
عامةB ()
{
}
العام ب (العمر الدولي)
{
this.age = age;
}
مجموعة الفراغ العام (int age)
{
this.age = age;
}
int public getAge()
{
إرجاع this.age;
}
اختبار الفراغ العام ()
{
Final int[] arr={23,434,56,898};
System.out.println(Arrays.toString(arr));
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
آر[2] = 200;
System.out.println(Arrays.toString(arr));
// إعادة التعيين التالية لـ Arr غير قانونية
// آر = فارغة؛
}
/**
تعميق فهمك للنهائي
*/
اختبار الفراغ العام 2 ()
{
String str1 = "مستقبل أفضل";
// مرجع مباشر إلى "مستقبل أفضل" في التجمع الثابت
String str2 = "جميل"+"المستقبل";
//حقيقي
System.out.println(str1 == str2);
سلسلة s1 = "جميلة";
سلسلة s2 = "المستقبل";
سلسلة s3 = s1+s2؛
//false s1 s2 هو مجرد متغير لا يمكن تحديده في وقت الترجمة
// إذا كنت تريد تحديده في وقت الترجمة، فاستخدم Final لتعديل s1 s2
System.out.println(str1 == s3);
}
}
هل تعرفون يا رفاق شيئًا عن المُعدِّل النهائي في Java، وأعتقد أنه تم شرحه بوضوح في التعليقات، لذلك لن أخوض في التفاصيل هنا؟