Javaمثال حول الكلمة static
في جافا
في هذا المثال سنقوم بتعريف كلاس إسمه Example
يحتوي على الأشياء التالية:
- متغير إسمه
a
معرف كـstatic
. - دالة إسمها
print
تعرض قيمة المتغيرa
. - دالة إسمها
staticPrint
تعرض أيضاً قيمة المتغيرa
لكنها معرفة كـstatic
.
بعدها سنقوم بتغير و عرض قيمة المتغير a
بعدة طرق.
public class Example { // Example.a إذاً يمكننا الوصول إليه من خلال كائن أو من أي مكان مباشرةً بهذا الشكل .static كـ a قمنا بتعريف المتغير public static int a; // Example هذه الدالة لا يمكن استدعاءها إلا من خلال كائن من الكلاس public void print() { System.out.println( "a: " +a ); } // Example.staticPrint(); هذه الدالة يمكن استدعائها مباشرةً من أي مكان بهذا الشكل public static void staticPrint() { System.out.println( "a: " +a ); } }
public class Main { public static void main(String[] args) { // Example من الكلاس e2 و e1 هنا قمنا بإنشاء كائنين Example e1 = new Example(); Example e2 = new Example(); Example.a = 10; // Example مباشرةً من الكلاس a هنا قمنا بإعطاء قيمة لـ Example.staticPrint(); // static التي يمكننا استدعائها مباشرةً من الكلاس لأن نوعها staticPrint() من خلال الدالة a هنا قمنا بعرض قيمة e1.staticPrint(); // أيضاً e1 التي يمكننا استدعائها من الكائن staticPrint() من خلال الدالة a هنا قمنا بعرض قيمة e2.staticPrint(); // أيضاً e2 التي يمكننا استدعائها من الكائن staticPrint() من خلال الدالة a هنا قمنا بعرض قيمة e1.a = 22; // e1 من خلال الكائن a هنا قمنا بتغير قيمة e1.print(); // e1 التي وصلنا إليها من خلال الكائن print() ثم قمنا بعرضها من خلال الدالة e2.a = 75; // e2 من خلال الكائن a هنا قمنا بتغير قيمة e2.print(); // e2 التي وصلنا إليها من خلال الكائن print() ثم قمنا بعرضها من خلال الدالة } }
سنحصل على النتيجة التالية عند التشغيل.
a: 10 a: 10 a: 10 a: 22 a: 75
لا يمكنك وضع this
عند استدعاء متغير نوعه static
, فهنا مثلاً لا يمكنك أن تكتب this.a
بدل a
لأن الكلمة this
تستخدم للإشارة إلى كائن محدد على عكس مبدأ الـ static
.