English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
المعلمات الثابتة (الطريقة/المتغير) تعود إلى الفئة، وستتم تحميلها مع الفئة إلى الذاكرة. يمكنك تفعيلها دون إنشاء كائن. (استخدم اسم الفئة كمرجع). هناك نسخة واحدة فقط من الحقل الثابت في جميع الكائنات، أي أن قيمة الحقل الثابت متطابقة في جميع الكائنات. يمكنك استخدام الكلمة المفتاحية static لتعريف حقل ثابت.
public class Sample{ static int num = 50; public static void demo(){ System.out.println("Value of num in the demo method "+ Sample.num); } } public class Demo{ public static void main(String args[]){ System.out.println("Value of num in the main method "+ Sample.num); Sample.demo(); } }
نتيجة الإخراج
قيمة num في الطريقة الرئيسية 50 قيمة num في الطريقة الممثلة 50 في البرنامج التدريبي
إذا كان عليك إقتباس عضو ثابت لفئة نفسها (في نفس الفئة)، لا تحتاج إلى إقتباس الفئة نفسها، يمكنك الوصول إلى العضو الثابت مباشرة.
public class Sample{ static int num = 50; public static void demo(){ System.out.println("Value of num in the demo method "+ Sample.num); } public static void main(String args[]){ demo(); System.out.println(num); } }
نتيجة الإخراج
قيمة num في الطريقة الممثلة 50 في البرنامج التدريبي
في Java، يمكنك تضمين فئة داخل فئة أخرى، وتُسمى هذه الفئات فئات داخلية.
public class Outer{ public class Inner{ } }
عندما يكون لديك فئة داخل فئة أخرى، فإنها تلعب دورًا كعضو في الفئة الخارجية. لذلك، إذا قمت بتصنيف الفئة الداخلية كاستاتيكي، يمكنك الوصول إلى أعضائها (الأعضاء الداخلية) باستخدام اسمها فقط (الفئة الداخلية)-
outer_class_name.inner_class_name.members
class OuterDemo { static int data = 200; static class InnerDemo { public static void my_method() { System.out.println("This is my nested class"); System.out.println(OuterDemo.data); } } } public class StaticClassExample{ public static void main(String args[]) { System.out.println(OuterDemo.data); //النوع المدمج Outer.InnerDemo = جديد Outer.InnerDemo(); OuterDemo.InnerDemo.my_method(); } }
نتيجة الإخراج
200 This is my nested class 200
إذا حاولت الاستدلال على عضو (الاستاتيكي) للفئة الداخلية، لا تحتاج إلى استخدام اسم الفئة الخارجية، يمكنك التطرق إلى العضو (العضو الداخلي) فقط باستخدام اسم الفئة الداخلية.
class OuterDemo { static int data = 200; static class InnerDemo { public static void my_method() { System.out.println("This is my nested class"); System.out.println(OuterDemo.data); } } public static void main(String args[]) { System.out.println(data); InnerDemo.my_method(); } }
نتيجة الإخراج
200 This is my nested class 200