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); } } }
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