توی آموزش قبلی ، یه معرفی کوچولو از تابع سازنده توی کاتلین داشتیم . توی کاتلین ، ما میتونیم با استفاده از تابع سازنده ، عناصر کلاسمون رو خیلی سریع مقدار دهی کنیم . ما توی کاتلین دو نوع تابع سازنده داریم : یکی Primary Constructor و یکی هم Secondary Constructor . یعنی تابع سازنده اصلی و تابع سازنده ثانویه . که توی این آموزش در مورد تابع سازنده اصلی صحبت می کنیم . تابع سازنده ما میتونه خیلی ساده باشه و کار خاصی رو هم انجام نده . مثل این مثال :

توی خط پنجم کلاس person1 رو از نوع Person تعریف کردیم که کلاس Person تابع سازنده ما هست ، ولی همونطور که می بینید ، فقط دو تا ورودی میگیره و کار خاص دیگه ای انجام نمیده . موقع چاپ کردن پیغام توی خط هفتم هست که از ورودی های تابع سازنده استفاده می کنیم ، یعنی از firstName و age . خروجی کد بالا میشه : 

First Name = Joe

Age = 25

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

توی خط هشتم گفتیم که متغیر firstName رو برابر با fName که ورودی اصلی هست قرار بده و با استفاده از capitalize حرف اولش رو بزرگ چاپ کن . قبلا هم گفتیم که اگه توی کلاس سازنده بخوایم عملیاتی مثه چاپ پیغام انجام بدیم باید توی init اونو تعریف کنیم . خروجی کد بالا میشه :

First Name = Joe

Age = 25

حالا میخوایم به کلاس سازندمون مقادیر پیشفرض بدیم . فرض کنیم یه کلاس سازنده داریم که مثلا ۱۰ تا ورودی میگیره . حالا میخوایم خیلی از کلاس هامون رو از نوع کلاس سازندمون تعریف کنیم . یعنی باید واسه همشون ۱۰ تا ورودی هم تعریف کنیم ، چون اگه اینکارو نکنیم برنامه خطا میده . ولی اینکار یه کم اسیری هست ! و دردسر داره . پس ما میایم واسه کلاس سازنده خودمون مقادیر پیشفرضی رو تعریف میکنیم که اگه در ادامه هم یه کلاسی رو از نوع کلاس سازنده مون تعریف کردیم ، فقط ورودی هایی رو واسش ارسال کنیم که دوس داریم ( یا حتی اصن میتونیم هیچی رو هم به عنوان ورودی نفرستیم ، چون توی کلاس سازندمون مقادیر پیشفرض هست و اونارو چاپ میکنه ) . اینجوری مقادیر پیشفرض رو تعریف میکنیم : 

تو خط ششم ما کلاسمون رو از نوع کلاس سازنده تعریف کردیم ( که کلاس سازنده دو تا ورودی میگیره ) و ما هم دو تا ورودی رو واسش میفرستیم . تو خط نهم ما فقط یکی از ورودی ها رو واسش میفرستیم و توی خط چهاردهم ، هیچ ورودی رو نمیفرستیم و کلاس سازنده خودش مقادیر پیشفرض خودش رو چاپ میکنه . 

توی کلاس سازنده ، اگه بخوایم مقادیر پیشفرض رو استفاده کنیم ، حتما قبل از ورودی ها باید از  _   ( همون آندرلاین خودمون ) استفاده کنیم و بعدش مقدار پیشفرض رو بهش بدیم 

خروجی کد بالا میشه این : 

person1 is instantiated
First Name = Joe
Age = 25

person2 is instantiated
First Name = Jack
Age = 0

person3 is instantiated
First Name = UNKNOWN
Age = 0

یه بار دیگه هم بگم که این آموزش مال Primary Constructor بود و توی آموزشای بعد در مورد کلاس سازنده ثانویه بیشتر حرف میزنیم

آموزش تابع سازنده در کاتلین

مجتبی صابری


همه عشقم برنامه نویسی هست | t.me/kotlin9


پیمایش نوشته


پاسخ دهید

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