static
static للتخزين المشترك static
static تجعل العنصر مشتركًا بين كل الكائنات (عضو صنف) أو متاحًا بلا كائن (دالة صنفية).
في Java، static تعني أن العنصر ينتمي للصنف نفسه لا لكل كائن على حدة. static variable نسخة واحدة مشتركة بين كل الكائنات. static method تُستدعى عبر اسم الصنف مباشرة بدون إنشاء كائن.
الصياغة
static int count = 0;
static void display() { }
// الاستدعاء:
ClassName.count++;
ClassName.display();📄 مثال
class Counter {
static int total = 0;
Counter() {
total++;
}
static int getTotal() {
return total;
}
}
Counter a = new Counter();
Counter b = new Counter();
Counter c = new Counter();
System.out.println(Counter.getTotal()); // 3أهم النقاط
| العنصر | الوظيفة |
|---|---|
| static variable | قيمة واحدة مشتركة لكل كائنات الصنف |
| static method | تُستدعى عبر الاسم الصنف بدون كائن — لا يصل لأعضاء غير static |
| static block | كتلة تُنفّذ مرة واحدة عند تحميل الصنف — لتهيئة ثوابت معقّدة |
💡 نصائح عملية
- الثوابت (constants) يجب أن تكون static final: static final int MAX = 100;
- الدوال المساعدة التي لا تحتاج لحالة الكائن يجب أن تكون static
⚠️ أخطاء شائعة
- nxing استخدام this داخل دالة static — this مرتبط بكائن والstatic لا كائن مرتبط بها
- nxing this في static initializer — خطأ لأن this مرتبط بالكائن
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار JAVA الكامل بالعربي.