المتغير الثابت في Java

⚡ ملخص ذكي

المتغير الثابت في Java ينتمي هذا العنصر إلى الفئة وليس إلى أي كائن، ويتم تهيئته مرة واحدة عند تحميل الفئة. وتُستخدم نسخة مشتركة واحدة لجميع النسخ، ويمكن الوصول إليها مباشرةً من خلال اسم الفئة دون إنشاء كائن.

  • 📦 المتغير الثابت: ينتمي إلى الفئة، ويشترك في نسخة واحدة عبر جميع النسخ، ويتم تهيئته مرة واحدة عند التحميل.
  • ⚙️ الطريقة الثابتة: ينتمي إلى الفئة، ولا يمكنه الوصول إلا إلى البيانات الثابتة، ويتجاهل this/super.
  • 🧱 كتلة ثابتة: يتم تشغيله مرة واحدة عند تحميل الفئة لتهيئة أعضاء البيانات الثابتة.
  • 🔗 وصول: الوصول إلى الأعضاء الثابتة مباشرةً عبر ClassName.member بدون كائن.
  • ⛔ تقييد: لا يمكن للطريقة الثابتة أن تشير مباشرة إلى المتغيرات غير الثابتة (المتغيرات الخاصة بالمثيل).

المتغير الثابت في Java

يمكن أن تكون ثابتة:

  1. المتغيرات الثابتة
  2. طرق ثابتة
  3. الكتل الثابتة من Code.

دعونا نلقي نظرة على المتغيرات الثابتة والأساليب الثابتة أولاً.

ما هو المتغير الثابت في Java?

متغير ثابت في Java المتغير الثابت هو متغير خاص بالفئة ويتم تهيئته مرة واحدة فقط عند بدء التنفيذ. وهو متغير خاص بالفئة وليس بالكائن (النسخة). تُهيأ المتغيرات الثابتة مرة واحدة فقط عند بدء التنفيذ، وتُهيأ أولاً قبل تهيئة أي متغيرات خاصة بالنسخة.

  • نسخة واحدة ليتم مشاركتها من قبل جميع مثيلات الفصل
  • يمكن الوصول إلى المتغير الثابت مباشرة من خلال اسم الفئة ولا يحتاج إلى أي كائن

بناء الجملة:

<class-name>.<variable-name>

ما هي الطريقة الثابتة في Java?

الطريقة الثابتة في Java هي الطريقة التي تنتمي إلى الفئة وليس إلى الكائن. يمكن للطريقة الثابتة الوصول إلى البيانات الثابتة فقط. إنها طريقة تنتمي إلى الفصل وليس إلى الكائن (المثيل). يمكن للطريقة الثابتة الوصول إلى البيانات الثابتة فقط. لا يمكن الوصول إلى البيانات غير الثابتة (متغيرات سريعة).

  • يمكن للطريقة الثابتة استدعاء طرق ثابتة أخرى فقط ولا يمكنها استدعاء طريقة غير ثابتة منها.
  • يمكن الوصول إلى الطريقة الثابتة مباشرة من خلال اسم الفئة ولا تحتاج إلى أي كائن
  • لا يمكن للطريقة الثابتة الإشارة إلى الكلمات الرئيسية "هذا" أو "الفائقة" بأي حال من الأحوال

بناء الجملة:

<class-name>.<method-name>

ملاحظة: الطريقة main هي طريقة ثابتة، حيث يجب أن تكون قابلة للوصول لتشغيل التطبيق، قبل إجراء أي إنشاء.

دعونا نتعلم الفروق الدقيقة في الكلمات الرئيسية الثابتة عن طريق القيام ببعض التمارين!

مثال: كيفية استدعاء المتغيرات والأساليب الثابتة

الخطوة 1) انسخ الكود التالي إلى المحرر

public class Demo{
   public static void main(String args[]){
     Student s1 = new Student();
     s1.showData();
     Student s2 = new Student();
     s2.showData();
     //Student.b++;
     //s1.showData();
  }
}

class Student {
int a; //initialized to zero
static int b; //initialized to zero only when class is loaded not for each object created.

  Student(){
   //Constructor incrementing static variable b
   b++;
  }

   public void showData(){
      System.out.println("Value of a = "+a);
      System.out.println("Value of b = "+b);
   }
//public static void increment(){
//a++;
//}

}

الخطوة 2) حفظ وتجميع التعليمات البرمجية. قم بتشغيل الكود كـ جافا التجريبي.

الخطوة 3) يظهر الإخراج المتوقع أدناه


Java الأساليب الثابتة والمتغيرات

يوضح الرسم التخطيطي التالي كيفية إنشاء المتغيرات والكائنات المرجعية وكيفية الوصول إلى المتغيرات الثابتة بواسطة الحالات المختلفة.


Java الأساليب الثابتة والمتغيرات

الخطوة 4) من الممكن الوصول إلى متغير ثابت من خارج الفصل باستخدام بناء الجملة ClassName.Variable_Name. قم بإلغاء التعليق على السطر رقم 7 و8. حفظ وتجميع وتشغيل . مراقبة الإخراج.

Value of a = 0
Value of b = 1
Value of a = 0
Value of b = 2
Value of a = 0
Value of b = 3

الخطوة 5) قم بإلغاء التعليق على السطر 25,26،27 و XNUMX . حفظ وتجميع وتشغيل.

	 error: non-static variable a cannot be referenced from a static context a++; 

الخطوة 6) خطأ = ؟ وذلك لأنه لا يمكن الوصول إلى متغير المثيل "a"من طريقة فئة جافا الثابتة"زيادة".

ما هو الحظر الثابت في Java?

استخدم كتلة ثابتة عبارة عن كتلة من البيان داخل أ Java فئة سيتم تنفيذها عند تحميل فئة لأول مرة في ملف JVM. A تساعد الكتلة الثابتة على تهيئة أعضاء البيانات الثابتة، تمامًا كما يساعد المنشئون في تهيئة أعضاء المثيل.

class Test{
 static {
 //Code goes here
 }
}

البرنامج التالي هو مثال للكتلة الثابتة في Java.

مثال: كيفية الوصول إلى الكتلة الثابتة

public class Demo {
 static int a;
 static int b;
 static {
    a = 10;
    b = 20;
 }
 public static void main(String args[]) {

  System.out.println("Value of a = " + a);
  System.out.println("Value of b = " + b);

 	}
}

سوف تحصل على النتيجة التالية للبرنامج.

Value of a = 10
Value of b = 20

الأسئلة الشائعة

المتغير الثابت ينتمي إلى الصنف وله نسخة مشتركة واحدة لجميع الكائنات. أما متغير النسخة فينتمي إلى كل كائن على حدة، ويحصل على نسخة منفصلة لكل نسخة، ويتم تهيئتها عند إنشاء الكائن.

لا. لا يمكن للدالة الثابتة الوصول إلا إلى البيانات الثابتة والدوال الثابتة الأخرى. يؤدي الرجوع إلى متغير غير ثابت (متغير خاص بمثيل) من سياق ثابت إلى حدوث خطأ في الترجمة، لأنه لم يتم إنشاء الكائن بعد.

يتم تنفيذ كتلة ثابتة مرة واحدة، عند تحميل الفئة لأول مرة في JVM، قبل إنشاء أي كائن أو تشغيل الدالة الرئيسية. وتُستخدم لتهيئة أعضاء البيانات الثابتة.

يمكن للذكاء الاصطناعي تحليل كيفية استخدام حقل أو أسلوب ما، والتوصية ببيانات ثابتة عندما تتم مشاركة البيانات عبر جميع الحالات أو عندما لا تكون هناك حاجة لحالة الحالة، مما يساعدping يتجنب المطورون استخدام العناصر غير الضرورية ويقللون من استهلاك الذاكرة.

نعم. يمكن للتحليل المدعوم بالذكاء الاصطناعي أن يشير إلى الحالة الثابتة القابلة للتغيير التي تسبب مشاكل في سلامة الخيوط، أو التبعيات العالمية المخفية، أو صعوبات الاختبار، ويقترح بدائل أكثر أمانًا مثل حقول المثيل أو حقن التبعية.

تلخيص هذه التدوينة بـ: