Javaمثال يعلمك طريقة أخرى لإنشاء كائن من Inner Class في جافا
في هذا المثال سنفعل import للكلاس B, ثم سننشئ منه كائن إسمه obj.
الكلاس A لم نغير أي شيء فيه, قمنا بتعليم الكود الذي أضفناه أو عدلنا فيه في الكلاس B باللون الأصفر.
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);
}
}
}
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);
}
}
}
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() هنا قمنا باستدعاء الدالة
}
}
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
x contain: 10
y contain: 20
y contain: 30