الدرس 26: الكلمة المفتاحية static
تعني الكلمة المفتاحية static أن العضو (متغير أو دالة أو كتلة) ينتمي إلى الفئة نفسها ، وليس إلى أي نسخة (كائن) محددة من الفئة.
1. المتغيرات الثابتة (متغيرات الفئة)
- مشتركة بين جميع كائنات الفئة.
- يتم تهيئتها مرة واحدة فقط عند تحميل الفئة في الذاكرة.
java public class Counter { // متغير نسخة (لكل كائن نسخته الخاصة) int instanceCount = 0;
// متغير ثابت (مشترك بين جميع الكائنات)
public static int totalObjects = 0;
public Counter() {
instanceCount++;
totalObjects++; // يزيد العداد المشترك
}
}
Counter c1 = new Counter(); Counter c2 = new Counter();
// الوصول للمتغيرات الثابتة عبر اسم الفئة System.out.println(Counter.totalObjects); // المخرج: 2
2. الدوال الثابتة (Static Methods)
- يمكن استدعاؤها مباشرة باستخدام اسم الفئة (مثلاً
Math.sqrt(16)). - لا يمكنها الوصول إلى متغيرات النسخة (غير الثابتة) أو تعديلها مباشرة.
- لا يمكنها استخدام الكلمات المفتاحية
thisأوsuper.
java public static String getCompanyName() { return "TechCorp"; }
// الوصول: String name = Counter.getCompanyName();
3. كتل التهيئة الثابتة (Static Initialization Blocks)
تُستخدم لتهيئة المتغيرات الثابتة أو تنفيذ منطق إعداد ثابت عند تحميل الفئة لأول مرة.
java public class Config { public static final double PI;
static {
// يتم تشغيل هذا مرة واحدة عند تحميل فئة Config
PI = 3.14159;
System.out.println("Static block initialized.");
}
}