English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
الملف/المتغيرات الثابتة تعتبر جزءًا من الصف، وستتم تحميلها مع الصف في الذاكرة. يمكنك طلبها دون إنشاء نموذج. (استخدم اسم الصف كمرجع). هناك نسخة واحدة فقط من الحقل الثابت في الصف، أي أن قيمة الحقل الثابت هي نفسها في جميع النماذج. يمكنك استخدام الكلمة المفتاحية static لتعريف حقل ثابت.
public class Sample{ static int num = 50; public void demo(){ System.out.println("قيمة num في الدالة demo " + Sample.num); } public static void main(String args[]){ System.out.println("قيمة num في الدالة main " + Sample.num); new Sample().demo(); } }
نتيجة الخروج
قيمة num في الدالة main 50 قيمة num في الدالة demo 50
إذا تم إعلان المتغيرات الثابتة في الصف، فإنها لم يتم تعيينها بعد، مثل استخدام المتغيرات المثبتة، سيستخدم معالج التجميع القيم الافتراضية في بناء المبدئي.
public class Sample{ static int num; static String str; static float fl; static boolean bool; public static void main(String args[]){ System.out.println(Sample.num); System.out.println(Sample.str); System.out.println(Sample.fl); System.out.println(Sample.bool); } }
نتيجة الخروج
0 null 0.0 false
لكن، إذا قمت بتحديد المتغيرات المثبتة بشكل دائم، فإن معالج Java لن يبدأها في بناء المبدئي، لذا يجب عليك بدء static و final المتغيرات. إذا لم تقم بتجميعها، ستظهر رسالة خطأ.
public class Sample{ final static int num; final static String str; final static float fl; final static boolean bool; public static void main(String args[]){ System.out.println(Sample.num); System.out.println(Sample.str); System.out.println(Sample.fl); System.out.println(Sample.bool); } }
Sample.java:2: خطأ: لم يتم تعريف المتغير num في بناء المبدئي final static int num; ^ Sample.java:3: خطأ: لم يتم تعريف المتغير str في بناء المبدئي final static String str; ^ Sample.java:4: خطأ: لم يتم تعريف المتغير fl في بناء المبدئي final static float fl; ^ Sample.java:5: خطأ: لم يتم تحديث المتغير bool في البنيان الافتراضي final static boolean bool; ^ 4 أخطاء
لا يمكنك تخصيص قيمة للمتغير النهائي من داخل بناء الجسم-
public class Sample{ final static int num; Sample(){ num = 100; } }
نتيجة الخروج
Sample.java:4: خطأ: لا يمكن تخصيص قيمة للمتغير النهائي num num = 100; ^ 1 خطأ
الطريقة الوحيدة لتحديث المتغيرات النهائية الثابتة غير البيانات النصية هي الكتلة الثابتة.
أكتلة ثابتةهذا كود يستخدم كلمة المفتاح static. عادةً ما تستخدم هذه الكلمات المفتاحية لتحديث أعضاء العضوية الثابتة. يجري JVM تنفيذ الكتل الثابتة قبل طريقة main عند تحميل الفئة.
public class Sample{ final static int num; final static String str; final static float fl; final static boolean bool; static{ num = 100; str = "krishna"; fl = 100.25f; bool = true; } public static void main(String args[]){ System.out.println(Sample.num); System.out.println(Sample.str); System.out.println(Sample.fl); System.out.println(Sample.bool); } }
نتيجة الخروج
100 krishna 100.25 صحيح