آموزش شی گرایی – قسمت ششم

آموزش شی گرایی

در قسمت ششم آموزش شی گرایی در ادامه مبحث وراثت در شی گرایی در آموزش پنجم آموزش ها و مثال هایی دررابطه با مفاهیم Sealed Classes (آخرین نود وراثت) ,  Polymorphism by Overloading (چندریختی با overloading) و Partial Classes(کلاس های جزیی) آورده شده.

آموزش شی گرایی – قسمت ششم

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

    (اخرین نودهای وراثت)Sealed Classes

اینگونه کلاس ها را بهتر است برای اخرین نودهای وراثت تعیین شود در واقع این گونه کلاسها به صورت بسته هستند و هیچگونه ارث بری نمیتوانید از این کلاس ها بکنید. برای مشخص کردن این گونه کلاس ها نیز تنها کافیست عبارت sealed را قبل از نام Class قرار داد و بدنه آنرا پیاده سازی کرد و خواهید دید که هیچگونه ارث بری نمیتوان انجام داد و در صورت اینکار با خطا مواجه خواهید شد

مثال زیر کلاس SampleClasses را به صورت Sealed تعریف کرده

حال به هیچ عنوان نمیتوان دستوری مانند زیر داشت

*از ویژگی sealed میتوان برای عناصر درون کلاس مانند متدها نیز استفاده میشود. در این صورت اگر مثلا متدی درون یک کلاس sealed شود و کلاس دیگری از این کلاس ارث بری کند کلاس وارث نمیتواند از متد sealed کلاس پدر استفاده کند.

(کردنoverride چند ریختی با)Polymorphism by Overloading

چندریختی بدین معنی است که برای مثال یک متد به چندین شکل و روش مختلف خروجی بدهد حال یکی از روش ها برای انجام چند ریختی استفاده از Overloading میباشد.

در آموزش قبل در مبحث سازنده ها ما عمل Overloading را به وسیله سازنده ها انجام دادیم حال اگر بخواهیم مثال دیگری در این رابطه بزنیم میتوانیم جمع را به چندین صورت مختلف انجام دهیم به صورت زیر

 

مثال فوق همانگونه که مشخص است از چندریختی استفاده شده بدین صورت که تابع sum را ۳بار تکرار کرده ایم البته باید به این نکته توجه داشت که برای استفاده از خاصیت چند ریختی توابع حتما باید نوع یا تعداد پارامترهای توابع با هم تفاوت داشته باشد تا بتوانیم چندین تابع هم نام ایجاد کنیم پس کافیست که یا تعداد پارامترها یا نوعشان را متمایز در نظر  بگیریم دقیقا همین قانونی که د مثال فوق ما رعایت کرده ایم همانگونه که میبینید یکی از توابع دو متغیر از نوع int و دیگری نیز دو متغیر از نوع double دارد پس چون نوع پارامترها متفاوت است مشکلی وجود نخواهد داشت و همچنین تابع دیگری که تنها یک پارامتر دارد که قانون تعداد را رعایت کرده.

حال در main برنامه یک شی از این کلاس ایجاد کرده و میتوان overloading را دید مانند زیر

آموزش شی گرایی-قسمت ششم

همانگونه که مشاهده میکنید زمانی که نام تابع را نوشتیم لیستی نمایش داده میشود که مشخص میکند سه overloading برای این تابع تعیین شده که میتوان با فلش مضخصات هرکدام را نیز مشاهده کرد.

 (کلاس های جزیی)Partial Classes

اینگونه کلاس ها  کلاس های جزیی میباشند درواقع زمانی از اینگونه کلاس ها استفاده میکنیم که میخواهیم یک کلاس سنگین با تعداد زیادی متد و پروپرتی و … خب مسلما کار غیر معقول این است که یک فایل کلاس بسییار حجیم ایجاد کنیم که طبیعتا در آینده قطعا هنگام کار با کلاس برای مثال تغییر دادن قسمتی از آن با مشکل مواجه خواهیم شد.

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

برای مشخص کردن کلاس partial تنها کافیست به هر تعداد فایل کلاس با نام های مختلف و دلخواه ایجاد کنید سپس درون پنجره کدنویسی نام کلاس هارا یکی کنید و عبارت partial را قبل از class تایپ کنید مانند زیر

آموزش شی گرایی-قسمت ششم

در تصویر فوق همانگونه که مشخص است نام فایل کلاس Test_1(نام فایلها نمیتوانند مشابه باشند پس تنها درن کدنویسی نام کلاس را تغییر میدهیم که البته اینکار هم غیر مجاز است و تنها زمانی مجاز میشود که عبارت partial را نیز ذکر کرده باشید) میباشد اما درون پنجره کدنویسی نام کلاس به Testt تغییر کرده که این نام باید برای تمام فایل هایی که میخواهیم تبدیل به یک فایل شود یکی باشد. همانگونه که مشاهده میکنید فایلTest_1  برای فیلدها قرار داده شده.

تصویر زیر نیز فایل Test_2 میباشد که برای متدها در نظر گرفته شده

آموزش شی گرایی-قسمت ششم

همانگونه که مشاهده میکنید نام این کلاس هم به Testt تغییر کرده اما نام فایل متفاوت از بقیه فایلها میباشد.

تصویر زیر نیز مربوط به کلاسی است که برای پروپرتی ها در نظر گرفته شده

آموزش شی گرایی-قسمت ششم

حال اگر درون قسمت main برنامه شی از نوع کلاس Testt(توجه کنید که شی از نوع نام کلاسی تعریف میشود که برای همه کلاس ها یکی تعیین شده)ایجاد کنیم میتوانیم به تمام عناصری که در هر سه کلاس مشخص شده دسترسی پیدا کنیم. به صورت زیر

آموزش شی گرایی-قسمت ششم

مدرس : خانم مهندس داودی نژاد

آموزش شی گرایی – قسمت پنجم

آموزش شی گرایی – قسمت هفتم

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

مطالب مرتبط

نظر بدهید

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