java, آموزش قدم به قدم جاوا, جاوا, شی گرایی در جاوا

کلاس تودرتو استاتیک در جاوا (Static Nested Class)

کلاس تودرتو استاتیک در جاوا

در این جلسه تیم کدگیت را با آموزش کلاس تودرتو استاتیک در جاوا همراهی کنید. پیش نیاز این آموزش شامل موارد زیر است:

  1. آشنایی با شی گرایی
  2. آشنایی با متد
  3. آشنایی با static

کلاس تودرتو در جاوا

در جاوا میتوانیم یک کلاس را درون یک کلاس دیگر بنویسیم. اگر کلاسی درون کلاس دیگر باشد را کلاس تودرتو در جاوا (Nested Class) میگویند.در کلاس های تودرتو در جاوا تعاریف زیر را به یاد داشته باشید:

  1. کلاس بیرونی (outer class) کلاسی است که درون آن یک کلاس دیگر نوشتیم.
  2. کلاس داخلی (inner class) کلاسی است که درون کلاس دیگر است.

انواع کلاس تودرتو

در جاوا کلاس های تو در تو را به 2 دسته تقسیم میکنند. در این آموزش فقط نوع دوم این کلاس ها را میگوییم و در جلسه گذشته در مورد نوع اول توضیح داده ایم:

  1. (Non-static nested class(inner class
    • Member inner class
    • Annomynous inner class
    • Local inner class
  2. Static nested class

کلاس تودرتو استاتیک در جاوا

کلاس تودرتو استاتیک در جاوا را میتوان بدون ساختن کلاس خارجی از آن شی ساخت!! دلیل به وجود آمدنش هم تقریبا همین است!! کلاس تودرتو استاتیک در جاوا فقط میتواند به فیلدها و متدهای استاتیک کلاس خارجی دسترسی داشته باشد. در آموزش متد static گفتیم که متدهای static فقط میتوانند فیلدهای static را به صورت مستقیم ببینند یا دسترسی داشته باشند. کلاس استاتیک نیز شبیه به متد است. مثال زیر را ببینید:

public class Test_Static_Inner {

     static int data = 30;

     static class Inner {
          void msg() {
              System.out.println("data is " + data);
          }
     }

     public static void main(String args[]) {
          Test_Static_Inner.Inner obj = new Test_Static_Inner.Inner();
          obj.msg();
     }

}

ما یک کلاس داخلی به نام Inner ساختیم و در کلاس خارجی خود یعنی Test_static_Inner فیلد static به نام data تعریف کردیم. در کلاس inner یک متد به نام msg نوشتیم که متغیر data را چاپ میکند. در main نیز بدون ساختن کلاس خارجی از کلاس داخلی شی ساختیم و متد آن را صدا زدیم!!! خروجی برنامه data is 30 است.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *