منتدى مصر التقني
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

التعامل مع الفئات الداخلية Inner Class

اذهب الى الأسفل

التعامل مع الفئات الداخلية Inner Class Empty التعامل مع الفئات الداخلية Inner Class

مُساهمة من طرف زهراء الأربعاء يناير 15, 2020 5:54 pm

أهلا بكم

الفئات الداخلية #Inner_classes أو الفئات المتداخلة #nested_classes هى الفئات التى يتم بنائها بداخل فئة اخري وتسمى الفئة التي تحمل الفئة الداخلية بالفئة الخارجية #outer_class ... والفئة الداخلية Inner_class لها علاقة خاصة مع الفئة الخارجية. تتيح هذه العلاقة الخاصة للفئة الداخلية الوصول إلى عنصر من الفئة الخارجية كما لو كانت جزءًا من الطبقة الخارجية.


تنقسم الفئات الداخلية إلى نوعين -

فئات متداخلة غير ثابتة - Non-static nested classes 

فئات متداخلة ثابتة - Static nested classes

التعامل مع الفئات الداخلية Inner Class Inner_classes

ملاحظة: تتمتع فئة #Inner_class بحق الوصول إلى جميع أعضاء الفئة الخارجية (العامة والخاصة والمحمية)

بناء جملة لإنشاء Inner Class

الكود:
//outer class
class OuterClass {
//inner class
class InnerClass {
    }
}




كيفية الوصول إلى الطبقة الداخلية

لا يمكن الوصول إلى الطبقة الداخلية إلا من خلال نسخة من الطبقة الخارجية...وذلك فى حالتين :


1_الوصول للفئة الداخلية من داخل الفئة الخارجية :

يمكن للفئة الخارجية إنشاء مثيل للفئة الداخلية بنفس طريقة الفئة العادية...وذلك على النحو التالى :

الكود:
class OuterClass {
private int i = 9;

// Creating instance of inner class and calling inner class function
public void createInner() {
InnerClass i1 = new InnerClass();
i1.getValue();
}

// inner class declarataion
class InnerClass {
public void getValue() {
// accessing private variable from outer class
System.out.println("value of i -" + i);
}
}
}

2__الوصول للفئة الداخلية من خارج الفئة الخارجية :

قم بإنشاء مثيل فئة خارجية ثم مثيل فئة داخلية

الكود:
class MainClass {
public static void main(String[] args) {
// Creating outer class instance
OuterClass outerclass = new OuterClass();
// Creating inner class instance
OuterClass.InnerClass innerclass = outerclass.new InnerClass();
// Classing inner class method
innerclass.getValue();
}
}

يمكن أيضا استبدال رمز أعلاه مع الرمز التالى :

الكود:
OuterClass.InnerClass innerClass = new OuterClass.new InnerClass();

محدادت الوصول

ستتم معاملة الطبقة الداخلية العادية كعضو في الطبقة الخارجية بحيث يمكن أن تحتوي على عدة محدادات الوصول على النحو التالى :


  • final
  • abstract
  • public
  • private
  • protected
زهراء
زهراء
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 438
النقاط : 769
التقيم : 67
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى