دروس جافا

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

طرق جافا

طرق جافا معلمات طريقة جافا طريقة جافا التحميل الزائد نطاق جافا العودية جافا

فئات جافا

جافا OOP فئات / كائنات جافا سمات فئة Java طرق فئة جافا منشئو جافا معدِّلات جافا تغليف جافا حزم جافا / API الوراثة جافا جافا تعدد الأشكال فئات جافا الداخلية جافا التجريد واجهة جافا جافا Enums مدخلات مستخدم جافا تاريخ جافا جافا ArrayList جافا لينكدليست جافا HashMap جافا هاشسيت جافا التكرار فئات Java Wrapper استثناءات Java جافا RegEx خيوط جافا جافا لامدا

معالجة ملفات جافا

ملفات جافا جافا إنشاء / كتابة الملفات ملفات قراءة جافا جافا حذف الملفات

جافا كيف

أضف عددين

مرجع جافا

كلمات جافا طرق سلسلة جافا طرق جافا للرياضيات

أمثلة جافا

أمثلة جافا مترجم جافا تمارين جافا مسابقة جافا شهادة جافا


فئات جافا الداخلية


فئات جافا الداخلية

في Java ، من الممكن أيضًا تداخل الفئات (فئة داخل الفصل). الغرض من الفئات المتداخلة هو تجميع الفئات التي تنتمي معًا ، مما يجعل التعليمات البرمجية الخاصة بك أكثر قابلية للقراءة والصيانة.

للوصول إلى الفئة الداخلية ، قم بإنشاء كائن من الفئة الخارجية ، ثم قم بإنشاء كائن من الفئة الداخلية:

مثال

class OuterClass {
  int x = 10;

  class InnerClass {
    int y = 5;
  }
}

public class Main {
  public static void main(String[] args) {
    OuterClass myOuter = new OuterClass();
    OuterClass.InnerClass myInner = myOuter.new InnerClass();
    System.out.println(myInner.y + myOuter.x);
  }
}

// Outputs 15 (5 + 10)


فئة داخلية خاصة

على عكس الفصل "العادي" ، يمكن أن تكون الطبقة الداخلية privateأو protected. إذا كنت لا تريد وصول الكائنات الخارجية إلى الفصل الداخلي ، فقم بتعريف الفئة على أنها private:

مثال

class OuterClass {
  int x = 10;

  private class InnerClass {
    int y = 5;
  }
}

public class Main {
  public static void main(String[] args) {
    OuterClass myOuter = new OuterClass();
    OuterClass.InnerClass myInner = myOuter.new InnerClass();
    System.out.println(myInner.y + myOuter.x);
  }
}

إذا حاولت الوصول إلى فصل دراسي داخلي خاص من فصل دراسي خارجي ، فسيحدث خطأ:

Main.java:13: error: OuterClass.InnerClass has private access in OuterClass
    OuterClass.InnerClass myInner = myOuter.new InnerClass();
              ^



فئة داخلية ثابتة

يمكن أن تكون الفئة الداخلية أيضًا static، مما يعني أنه يمكنك الوصول إليها دون إنشاء كائن من الفئة الخارجية:

مثال

class OuterClass {
  int x = 10;

  static class InnerClass {
    int y = 5;
  }
}

public class Main {
  public static void main(String[] args) {
    OuterClass.InnerClass myInner = new OuterClass.InnerClass();
    System.out.println(myInner.y);
  }
}

// Outputs 5

ملاحظة: تمامًا مثل staticالسمات والطرق ، staticلا يمكن للفئة الداخلية الوصول إلى أعضاء من الفئة الخارجية.


الوصول إلى الفصل الخارجي من الفصل الداخلي

تتمثل إحدى ميزات الفئات الداخلية في قدرتها على الوصول إلى سمات وأساليب الفئة الخارجية:

مثال

class OuterClass {
  int x = 10;

  class InnerClass {
    public int myInnerMethod() {
      return x;
    }
  }
}

public class Main {
  public static void main(String[] args) {
    OuterClass myOuter = new OuterClass();
    OuterClass.InnerClass myInner = myOuter.new InnerClass();
    System.out.println(myInner.myInnerMethod());
  }
}

// Outputs 10