Java مثال يعلمك طريقة أخرى لإنشاء كائن من Inner Class في جافا

في هذا المثال سنفعل import للكلاس B, ثم سننشئ منه كائن إسمه obj.
الكلاس A لم نغير أي شيء فيه, قمنا بتعليم الكود الذي أضفناه أو عدلنا فيه في الكلاس B باللون الأصفر.

A.java
public class A {                    // A إسمه Outer Class هنا قمنا بتعريف
 
    static class B {                // B إسمه Inner Class هنا قمنا بتعريف
 
        public int x;               // static لأنه غير معرف كـ B هذا المتغير يمكن الوصول له فقط من خلال كائن من الكلاس
        public static int y;        // static لأنه معرف كـ A.B.y هذا المتغير يمكن الوصول له مباشرةً هكذا
     
        public void printX() {                // static لأنها غير معرفة كـ B هذه الدالة يمكن الوصول له فقط من خلال كائن من الكلاس
            System.out.println("x contain: " + x);
        }
     
        public static void printY() {         // static لأنها معرفة كـ A.B.printY() هذه الدالة يمكن الوصول لها مباشرةً هكذا
            System.out.println("y contain: " + y);
        }
 
    }
 
}
		

Main.java
import A.B;                      // B للكلاس import هنا فعلنا
 
public class Main {
 
    public static void main(String[] args) {
 
        B obj = new B();         // obj إسمه A الموجود بداخل الكلاس B هنا قمنا بإنشاء كائن من الكلاس
 
        obj.x = 10;              // obj الموجود في الكائن x هنا قمنا بإعطاء قيمة للمتغير
        obj.printX();            // obj من خلال الكائن printX() هنا قمنا باستدعاء الدالة
 
        obj.y = 20;              // لا تستخدم هذا الأسلوب  <---  obj من خلال الكائن y هنا قمنا بإعطاء قيمة للمتغير
        obj.printY();            // لا تستخدم هذا الأسلوب  <---  obj من خلال الكائن printY() هنا قمنا باستدعاء الدالة
 
        A.B.y = 30;              // B بشكل مباشر من الكلاس y هنا قمنا بإعطاء قيمة للمتغير
        A.B.printY();            // B بشكل مباشر من الكلاس printY() هنا قمنا باستدعاء الدالة
 
    }
 
}
		

سنحصل على النتيجة التالية عند التشغيل.

x contain: 10
y contain: 20
y contain: 30 
		

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة