{CodeGate}

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

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

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

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

در جاوا میتوانیم یک کلاس را درون یک کلاس دیگر بنویسیم. اگر کلاسی درون کلاس دیگر باشد را کلاس تودرتو در جاوا (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

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

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

در قسمت قبل در مورد انواع کلاس تودرتو در جاوا صحبت کردیم. این قسمت به توضیح کلاس تودرتو غیر استاتیک در جاوا میپردازیم. این نوع کلاس‌ها خود شامل سه قسمت میشوند:

  1. Member inner class
  2. Annomynous inner class
  3. Local inner class

Member inner class

این نوع کلاس ها بسیار ساده اند و فقط کافی است یک کلاس را درون کلاس دیگر نوشت تا یک member inner class ساخته باشیم. این کلاس ها میتوانند static یا final یا protected یا public یا private یا abstract باشند. نکته مهم این است که اگر ما بخواهیم شی از کلاس داخلی بسازیم باید حتما کلاس خارجی آن را هم بسازیم!!! یعنی این کلاس تنها از طریق کلاس خارجی قابل دسترس است(البته منطقی هم است). مثال ساده ای را ببینیم:

یک کلاس به نام outer_class ساختیم که کلاس خارجی ما است. در این کلاس فیلدی به نام data تعریف کردیم که private است. کلاس دیگری به نام inner_class تعریف کردیم.این کلاس متدی به نام msg دارد که فیلد data را چاپ میکند(در آموزش قبل گفتیم که کلاس داخلی به فیلدهای کلاس خارجی خود دسترسی دارند).

در متد main نیز ابتدا کلاس خارجی را ساختیم سپس کلاس داخلی را ساختیم و در آخر متد msg را صدا زدیم(به نحوه ساخت کلاس داخلی توسط کلاس خارجی دقت کنید).

Annomynous inner class

در این قسمت از کلاس تودرتو غیر استاتیک در جاوا به معرفی کلاس بی نام میپردازیم. همانطور که از نام آن پیداست این کلاس نامی ندارد. ویژگی های این کلاس به صورت زیر است:

  1. نام ندارد.
  2. Constructor ندارد (دلیلش بی نامی کلاس است!!).
  3. فقط یک بار ساخته میشود.
  4. معمولا این کلاس را درون متد میسازند.
  5. فقط در نقطه ای که تعریف شده قابل دسترسی است!!
  6. نمیتواند static باشد.
  7. موقعی استفاده میشود که ما متدی را از یک کلاس یا interface بخواهیم override کنیم.

کد زیر مثالی از این نوع کلاس است:

یک کلاس به نام person ساختیم. این کلاس abstract است و نیاز به override متدی به نام  eat دارد به همین دلیل میتوانیم از کلاس بی نام استفاده کنیم. در main یک شی از person ساختیم و در همانجا یک کلاس ساختیم که از جنس person است (قبلا گفتیم که نمیتوانیم از کلاس abstract یک شی بسازیم). کلاس بی نام ما دقیقا بعد از new کردن ساخته شده است.

Local inner Class

در آخرین قسمت از کلاس تودرتو غیر استاتیک در جاوا به توضیح Local inner Class میپردازیم. این نوع کلاس ها درون متد نوشته میشوند. محدوده دید این کلاس درون متد است. به مثال زیر توجه کنید:

یک کلاس به نام Local درون متد display ساختیم. کلاس LocalInner هم کلاس خارجی ما است. در متد display از کلاس درونی خود یک شی ساختیم و از آن استفاده کردیم. درون متد main از کلاس خارجی خود شی ساختیم و متد display را صدا زدیم(خروجی برنامه چاپ مقدار data است).

پسورد: www.codegate.ir

 

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

دیدگاه بگذارید

نظر شما چیست؟

مطلع کردن شما از
avatar

wpDiscuz