بوت کمپ Kotlin برای برنامه نویسان اندروید درس چهار: خلاصه
این درس مفاهیم زیادی را پوشش داد. در حالیکه بسیاری از مباحث باید از زبانهای برنامه نویسی شی گرای دیگر آشنا باشد، کاتلین امکانات دیگری برای مختصر سازی و افزایش خوانایی کد اضافه میکند.
کلاس ها و سازنده ها
- در کاتلین با استفاده از class یک کلاس می سازید
- کاتلین به طور خودکار تنظیم کننده ها (setters) و گیرنده هایی (getters) برای خصوصیات می سازد.
- سازنده اصلی را به طور مستقیم داخل تعریف کلاس تعریف می کنید. برای مثال:
class Aquarium(var length: Int = 100, var width: Int = 20, var height: Int = 40)
- اگر یک سازنده اصلی نیاز به کد اضافه داشته باشد، آن را درون یک یا چند بلوک init می نویسیم.
- یک کلاس می تواند با استفاده از constructor یک یا چند سازنده ثانویه بسازد، اما روش کاتلین استفاده از یک تابع کارخانه (factory function) است.
تنظیم کنندههایپدیداری و زیرکلاسها
- همه کلاسها و توابع در کاتلین به صورت پیشفرض public هستند، اما شما می توانید از تنظیم کنندهها برای تغییر پدیداری به internal، یا private، یا protected استفاده کنید.
- برای ساختن یک زیر کلاس، کلاس والد باید به عنوان open علامت گذاری شده باشد.
- برای برتری دادن متدها و خصوصیات در یک زیر کلاس، متدها و خصوصیات باید با استفاده از open در کلاس والد علامت گذاری شده باشد.
- یک کلاس مهر شده فقط می تواند داخل فایلی که تعریف شده زیر کلاس شود. با استفاده از پیشوند sealed می توانید یک کلاس مهر شده بسازید.
کلاس های دادهای، یگانه و شمارشی
- با استفاده از پیشوند data یک کلاس داده ای تعریف میکنید.
- تخریب (Destructuring) یک راه کوتاه برای اختصاص خصوصیات یک شیء دادهای به متغیرهای جداگانه است.
- ساختن یک کلاس یگانه به جای class با استفاده از object انجام می شود.
- با استفاده از کلاس شمارشی (enum class) یک شمارشی ایجاد کنید.
کلاس های انتزاعی، رابط ها و تفویض نمایندگی
- کلاس های انتزاعی و رابط ها دو راه برای اشتراک رفتارهای مشترک بین کلاس ها هستند.
- یک کلاس انتزاعی خصوصیات و رفتار تعریف می کند، اما پیاده سازی را به زیر کلاس ها واگذار می کند.
- یک رابط (inteface) رفتار را تعریف میکند و میتواند پیادهسازی پیش فرض برای بعضی از رفتارها یا همه رفتارها ارائه کند.
- وقتی شما از رابط ها برای ساخت یک کلاس استفاده می کنید، عملکرد کلاس به روش کلاسهایی که شامل می شود قابل تعمیم است.
- [تفویض] نمایندگی رابط (Interface delegation) از ترکیب بندی استفاده می کند، اما همچنین نمایندگی پیاده سازی را به کلاس های رابط تفویض می کند.
- ترکیب کردن یک راه قدرتمند برای اضافه کردن عملکرد به یک کلاس با استفاده از نمایندگی رابط است. به طور عمومی ترکیب کردن ترجیح داده می شود، اما ارث بری از یک کلاس انتزاعی جواب بهتری برای برخی مسائل است.
بخش قبل | فهرست درس | بخش بعد