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

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