English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

هل يتم تعيين المتغيرات الثابتة في البنية الفارغة في الكلاس Java؟

الملف/المتغيرات الثابتة تعتبر جزءًا من الصف، وستتم تحميلها مع الصف في الذاكرة. يمكنك طلبها دون إنشاء نموذج. (استخدم اسم الصف كمرجع). هناك نسخة واحدة فقط من الحقل الثابت في الصف، أي أن قيمة الحقل الثابت هي نفسها في جميع النماذج. يمكنك استخدام الكلمة المفتاحية 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
صحيح
أعجبك هذا