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

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

در قسمت پنجم آموزش شی گرایی در ادامه آموزش قبل دررابطه با اعضا ثابت یا Constants و Abstract Classes که شبیه به کلاس های static هستند و مبحث اصلی و مهم شی گرایی که وراثت نام دارد و بسیار کاربردی است را آموزش داده ایم که در آموزش آینده بیشتر این مبحث را ادامه خواهیم داد.

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

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

اعضا ثابت Constants

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

برای تعیین یک عضو ثابت باید از کلمه کلیدی Const قبل از نام آن استفاده کرد مانند زیر

حتی اگز بخواهیم برای اعضا ثابت در کلاس پروپرتی ایجاد کنیم تنها میتوان قسمت get{} پروپرتی را داشت چون میتوان گفت اعضا ثابت اعضا فقط خواندنی میباشند و در صورت وجود قسمت set{} با خطا مواجه خواهید شد. مانند زیر

نکته دیگر در ارتباط با اعضا ثابت این است که این اعضا مانند اعضای static نمیتوان از طریق شی مربوط به کلاسشان صدا زد بلکه در صورت Public بودن آنهارا باید از طریق نام کلاس صدا زد مانند زیر

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

البته تنها در صورت وجود پروپرتی از اعضا ثابت میتوان در main برنامه از طریق شی کلاسشان به آنها دسترسی پیدا کرد.

Abstract Classes

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

در مثال فوق یک کلاس جدید با نام shape ایجاد کرده ایم و پس از ایجاد کلمه کلیدی abstract را قبل از نام آن ذکر کرده ایم سپس درون بدنه کلاس تنها یک تعریف از یک متد با نام Draw شده که از نوع abstract نیز میباشد و بدنه کلاس بسته میشود در خارج از بدنه کلاس با استفاده از سیستم وراثت (در ادامه بطور مفصل در مورد این موضوع توضیح خواهیم داد) یک کلاس جدید به نام Square که با استفاده از علامت : از کلاس Shape ارث بری میکند را مشخص کرده ایم درون بدنه آن یک override از متد Draw (override نیز در ادامه توضیح خواهیم داد) ایجاد شده که در واقع این کار برای پیاده سازی بدنه متد Draw که از نوع abstract تعریف شده میباشد که یک دستور چاپ ساده قرار داده شده.

وراثت

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

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

کدهای زیر در کلاس Animal نوشته شده

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

 عبارات فوق نیز یک کلاس با نام Snake مشخص شده و با علامت : مشخص کرده ایم که از کلاس Animal ارض بری کند سپس درون بدنه آن یک متد مشخص شده که فقط و فقط مربوط به همین کلاس میباشد ودر واقع این متد Kill را نمیتوان در زیرکلاس های دیگر دید. در ادامه کلاس دیگری نیز برای ارث بری از کلاس Animal مشخص کرده ایم به شکل زیر

کلاس فوق نیز که مربوط به Monkey میباشد و از کلاس Animal نیز ارث بری میکند دارای یک متد اختصاصی میباشد که تنها برای خود این کلا سقابل دسترسی میباشد به عبارت دیگر میتوان گفت این نمونه زیر کلاس ها که از خاصیت ارث بری استفاده میکنند علاوه بر متدهایی که درون خودشان تعریف میشود از متدها و کل اعضا درون کلا ریشه نیز میتوانند استفاده کنند برای مثال در همین کلاس Monkey یک متد با عنوان Jump تعریف شده که این کلاس علاوه بر اینکه از این متد میتواند استفاده کند از دو متد دیگر که در کلاس Animal با عنوان هایEat()  و Move() وجود داشت نیز میتوانند استفاده کنند.

حال درون Main برنامه میتوان شی هایی از هرکدام از کلاسهای مشخص شده ایجاد کرد و عناصر قابل دسترسشان را مشاهده کرد برای مثال عناصر قابل دسترس کلاس Animal به شرح زیر است

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

عناصر قابل دسترس کلاس Monkey که از کلاس Animal ارث بری میکرد نیز به شکل زیر میباشد

 

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

عناصر قابل دسترس کلاس Snake نیز به شرح زیر میباشد

 

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

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

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

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

مطالب مرتبط

نظر بدهید

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