Android-FAQ icon indicating copy to clipboard operation
Android-FAQ copied to clipboard

‫innerClass چیست ؟

Open FatemehKavoosi opened this issue 5 years ago • 3 comments

FatemehKavoosi avatar Jul 08 '20 19:07 FatemehKavoosi

nested class (کلاس های تو در تو)

نوشتن یک کلاس درون دیگر کلاس ها در جاوا مجاز است. کلاس نوشته شده در درون کلاس دیگر nested class نامیده می شود

و کلاسی که دارای کلاس داخلی است، outer class یا کلاس بیرونی نامیده می شود.

class Outer_Demo {
   class Inner_Demo {
   }
}

Non-static nested classes:

این شامل اعضای غیر استاتیکی یک کلاس است.

Static nested classes:

این شامل اعضای ایستا یک کلاس است.

کلاس های داخلی (Non-static nested classes)

طبقات داخلی از سه نوع بسته به نحوه و مکان آنها تعریف می شود. آن ها هستند: Inner Class Method-local Inner Class Anonymous Inner Class

inner_classes

مرجع کامل: https://pvlearn.com/product/%DA%A9%D9%84%D8%A7%D8%B3-%D9%87%D8%A7%DB%8C-%D8%AF%D8%A7%D8%AE%D9%84%DB%8C-%D8%AF%D8%B1-%D8%AC%D8%A7%D9%88%D8%A7/

MohsenNooriArdestani avatar May 15 '22 05:05 MohsenNooriArdestani

متد محلی کلاس داخلی در جاوا، می توانیم یک کلاس را در یک متد بنویسیم و این یک نوع محلی خواهد بود. همانند متغیرهای محلی، محدوده کلاس داخلی در متد محدود می شود.

یک کلاس داخلی متد می تواند فقط در متد تعریف شده در کلاس تعریف شود.


public class Outerclass {
   // instance method of the outer class 
   void my_Method() {
      int num = 23;

      // method-local inner class
      class MethodInner_Demo {
         public void print() {
            System.out.println("This is method inner class "+num);	   
         }   
      } // end of inner class
	   
      // Accessing the inner class
      MethodInner_Demo inner = new MethodInner_Demo();
      inner.print();
   }
   
   public static void main(String args[]) {
      Outerclass outer = new Outerclass();
      outer.my_Method();	   	   
   }
}

MohsenNooriArdestani avatar May 30 '22 12:05 MohsenNooriArdestani

کلاس داخلی استاتیک یک کلاس درونی استاتیک در واقع یک کلاس داخلی تودرتو است که به عنوان یک عضو ثابت از کلاس بیرونی است.

این کلاس می تواند بدون اکتیو کردن کلاس بیرونی، با استفاده از سایر اعضای استاتیک قابل دسترسی باشد.

ساختار کلاس داخلی استاتیک بصورت زیر می باشد:

class MyOuter {
   static class Nested_Demo {
   }
}
public class Outer {
   static class Nested_Demo {
      public void my_method() {
         System.out.println("This is my nested class");
      }
   }
   

   public static void main(String args[]) {
      Outer.Nested_Demo nested = new Outer.Nested_Demo();	 
      nested.my_method();
   }
}

MohsenNooriArdestani avatar May 30 '22 12:05 MohsenNooriArdestani