Learn Typing Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Computer Fundamentals English English Conversations Problem Solving

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 
		

الدورات

أدوات مساعدة

أقسام الموقع

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