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

کلاس تودرتو در جاوا (Nested Classes)

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

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

  1. آشنایی با شی گرایی
  2. آشنایی با constructor
  3. آشنایی با this

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

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

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

برای بهتر متوجه شدن تعاریف بالا کد زیر را ببینید:

Class Outer {
   class Inner {
   }
}

کلاس تودرتو میتواند مثل بقیه کلاس ها فیلد و متد داشته باشد. میتواند constructor داشته باشد و حتی abstract یا final هم میتوانند تعریف شوند. کلاس داخلی با کلاس خارجی هم ارتباط مستقیم و دسترسی به متغیرها و فیلدهای آن نیز دارد. جالب است که کلاس داخلی حتی به متغیرهای private کلاس خارجی هم دسترسی دارد!!!

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

حال که با کلاس های تودرتو آشنا شدیم به این نکته نیز باید اشاره کنیم که این نوع کلاس ها چه قابلیت ها و فوایدی دارند!! ما از کلاس های تودرتو استفاده میکنیم تا منطقا چندین کلاس را یکی میکنیم. این کار باعث خوانایی کد و قابلیت نگهداری بهتری (maintainable) میشود. همچنین کد ما نیز بهینه میشود. به طور کلی میتوان فواید این کلاس ها را به صورت زیر خلاصه کرد:

  1. کلاس تودرتو در جاوا یک رابطه جدیدی بین کلاس ها ایجاد میکند. یعنی کلاس داخلی به تمام کلاس خارجی دسترسی دارد.
  2. این نوع کلاس ها باعث میشود ما کد کمتری بنویسیم.
  3. و آخرین فایده ای که برای کلاس تودرتو میتوان اشاره کرد خوانایی و قابلیت نگهداری کد است.

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

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

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

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

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

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