آموزش مقدماتی دارت Dart - قسمت ۷

این قسمت کلاس و ارث بری در صورتی که قسمت های قبلی رو از دست دادید: https://virgool.io/@novonimo/آموزش-مقدماتی-دارت-dart-قسمت-۱-vrd1jjuoble1 آموزش مقدماتی دارتکلاس به ما اجازه میده که شی تعریف کنیم. تعریف کلاس در زبان دارت مشابه زبان های دیگست. تو این کلاسی که نوشتم در قسمت constructor دو مقدار name و age رو ورودی میگیریم و به شی که میسازیم نسبت میدیم. متد speak هم متد دلخواهی هست که برای این کلاس تعریف کردم. بعد از تعریف کلاس در تابع main که بلافاصله بعد از اجرای برنامه خونده میشه یک شی جدید میسازم. برخلاف سایر زبان ها که معمولا از new استفاده میکنند اینجا از اسم خود کلاس استفاده میکنیم و بعد متد speak رو برای شی که ساختیم پیاده میکنیم.تعریف یک کلاس در دارتبرای تعریف قسمت constructor یک روش ساده تر هم وجود داره که توصیه میکنم از هر دو روش استفاده کنید. همچنین برای تعریف پارامتر ها هم میشه از تایپشون استفاده کرد.روش دیگری برای تعریف سازنده کلاسهمچنین برای تعریف توابع و پارامتر های خصوصی میتونید از یک underline یا underscore قبل از اسمشون استفاده کرد.متد خصوصیبرای تعریف متد های getter & setter هم از این روش استفاده میکنیم:setter & getterزبان هایی مثل Java به ما اجازه میدند که چندین constructor برای یک کلاس تعریف کنیم که هرکدوم مقادیر متفاوتی از پارامترهارو دارند و توی سازنده کلاس ازش استفاده میکنند.توی زبان دارت هم میتونیم از این خاصیت استفاده کنیم و با روش دیگری سازنده کلاس رو پیاده سازی کنیم. (البته من برای خوانایی کد قبلی سازنده رو حذف کردم)سازنده از jsonوراثتدر این مثال من کلاس از Person کلاس Employee رو ارث گرفتم پس همه متدهاو ... کلاس والد به کلاس Employee هم ارث میرسه. توی سازنده کلاس با استفاده از متد super میتونیم متد ها و متغیر هامون رو از کلاس والد بگیریم. من برای کلاس جدید Employee یک متغیر جدید دیگه هم در نظر گرفتم که توی سازنده کلاس بهش میدم.برای اینکه بیشتر نکات ارث بری رو همینجا گفته باشم به override کردن متد ها هم اشاره کنم که برای اینکار کافیه یک دکوراتیو بزنیم و متد جدیدمون رو تعریف کنیم .اگر به تابع اصلی برناممون دقت کنیم میبینم که در خط اول بعد از تعریف یک شی جدید از کلاس جدیدمون، پارامتر جدیدی هم که تعریف کردیم ورودی دادیم. ویژگی cascade operatorدر خط دوم به جای اینکه از عبارت bob.speak برای صدا زدن متد speak استفاده کنیم میایم از زنجیره دارت استفاده میکنیم به این شکل که علامت ; از انتهای خط تعریف شی رو حذف میکنیم و با ۲ تا نقطه متد مورد نظر رو صدا میزنیم . دقت کنید که میتونیم بیشمار متد و ... رو با استفاده از این زنجیره پشت سر هم استفاده کرد و هر دفعه خود شی رو صدا نزنیم.اگه دقت کنید تو کلاس جدید برای تعریف ورودی جدید joinDate از نوع DateTime استفاده کردم و قبلش هم کلمه final رو به کار بردم . کلمه فاینال همون طور که تو قسمت ۴ مطرح شد برای اینه که دیگه نشه بعد تعریف ، تغییرش داد.پس وقتی وقتی میخوایم این خصوصیت از شی bob رو تغییر بدیم به خطا میرسیم چون مقدار این خاصیت دیگه تغییر نمیکنه !ارث بری در دارتهمچنین سایر قسمت های این سری از آموزش دارت: قسمت۱ قسمت۲ قسمت۳ قسمت۴ قسمت۵ قسمت۶از نوشته های دیگر من در ویرگول https://virgool.io/@novonimo/%D9%86%DA%A9%D8%A7%D8%AA-%D8%B7%D9%84%D8%A7%DB%8C%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AA%D9%88%D8%B3%D8%B9%D9%87-%D8%AF%D9%87%D9%86%D8%AF%DA%AF%D8%A7%D9%86-%D8%B1%DB%8C-%D8%A7%DA%A9%D8%AA-%D9%86%DB%8C%D8%AA%D9%88-reactnative-%D9%82%D8%B3%D9%85%D8%AA-%DB%B1-l8kuhkrr98ps https://virgool.io/@novonimo/%D8%B1%DB%8C-%D8%A7%DA%A9%D8%AA-%D8%B1%D9%88-%D9%82%D9%88%D8%B1%D8%AA-%D8%A8%D8%AF%D9%87-%DB%B1-u8t5ysweyxyj Contact With me: https://t.me/nimamohamadianhttps://www.facebook.com/nimamohamadian89https://twitter.com/Nima_Mohamadianhttps://www.linkedin.com/in/nima-mohamadian-57ba63123/