موضوع: تاریخ انتشار: 1 سال قبل

در این قسمت از آموزش در مورد constructor و ارث بری در جاوا خواهیم آموخت. با ما همراه باشید.

آشنایی با constructor:

وقتی شی می سازیم ، اگر override اش کنیم ، یک متد به صورت خود کار صدا زده می شود تکرار می کنم اگر override کنیم ، به این متد ، متد constructor می گویند ، ممکن است نیاز داشته باشیم در این متد کدی بنویسیم ، برای دست رسی و کد نویسی در متد constructor به این شکل عمل می کنیم :

خوب همان طور که در کد بالا می بینید یک متد static داریم به آن اصطلاحا JVM Constructor می گویند ، و فقط یک بار اجرا می شود حالا هر چند بار که آبجکت بسازید برای او فرقی ندارد .

به public parastoo(){} اصطلاحا Developer Constructor گفته میشود، این متد نه استاتیک است نه void و هر بار که آبجکت ایجاد کنید صدا زده می شود ، به مثال زیر و نتیجه آن دقت کنید .

کلاسی به نام درخت ساختم و داخل آن از کلاس پرستو ۳ آبجکت ایجاد کردم ، اگر این کد را اجرا کنید ، رشته های زیر برای شما چاپ می شود.

 

salam man JVM constructor hastam va faghat ye bar ejra misham

salam man Developer constructor hastam va har bar ejra misham

salam man Developer constructor hastam va har bar ejra misham

salam man Developer constructor hastam va har bar ejra misham

 

همان طور که مشاهده می کنید ، رشته ای که در کانستراکتور استاتیک بود فقط یک بار چاپ شد ، اما ما ۳ آبجک ساختیم ، و رشته ای که در دولوپر کانستراکتور بود ، ۳ بار چاپ شد .

دقت کنید که برای مشاهده این رشته ها ما کدی را که در کلاس main بود را اجرا کردیم .

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

 

ارث بری :

می خواهم مثال ساده ای ، برای ارث بری به شما نشان بدهم ، با خانواده آقای دارکوب وب آشناشوید.

 

اولین فرد هومن است ، کار او تیر اندازیست ،

هومن پسری به نام محمد دارد ، شغل محمد ساختمان سازی با چوب است ،

محمد پسری به نام مرتضی دارد ، شغل مرتضی مدیریت است ،

مرتضی پسری به نام ژیگو دارد ، کار ژیگو ساختمان سازی با آهن است.

 

حالا پکیجی به نام ersbari ایجاد می کنیم داخل آن کلاس ها را به این شکل می نویسیم :

تصویر پکیج :

 

picTwoETwo

کلاس ها :

در کلاس Main از روی ژیگویک آبجکتی می سازیم به کد زیر دقت کنید:

همان طور که مشاهده می کنید ، ژیگو می تواند هم تیراندازی کند هم ساختمان سازی هم مدیریت ، چرا ؟ چون این مهارت ها را از پدرش به ارث برده و پدر او ار پدرش …

اما موضوع قابل توجه این است که اگر کد را اجرا کنید ، متد ساختنی اجرا می شود که در کلاس ژیگو است و این کد می گوید با آهن ساختم هوهو ، و متدی که در پدربزگ ژیگو یعنی محمد وجود دارد چاپ نمی شود  ، زیرا ژن فرزند بر ژن پدر قالب است و متد ژیگو اینجا صدا زده می شود ، اگر بخواهیم به متد محمد هم دست رسی داشته باشم می توانیم از کلمه کلیدی super به این شکل استفاده کنیم .

همان طور که می بیند به این شکل از super استفاده کردیم ، در این حال متد پدر صدا زده می شود .

 

کلاس انتضاعی یا Abstract Class :

خوب حتما خانواده هایی را دیده اید که پدر عقده پزشکی مهندیسی یا وکالت داشته و فرزند خود را مجبور می کند در آن رشته تحصیل کنید ، در برنامه نویسی کلاس هایی داریم که کلاس فرزند را مجبور می کنند متدی را پیاده سازی کند.

به این کلاس ها کلاس عقده ای یا Abstract گویند ، فرض کنید مرتضی عقده پزشکی داشته باشد ، در این صورت ژیگو باید پزشکی بخواند، به کد های زیر دقت کنید :

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

در این کلاس شما باید متد pezeshki را پیاده سازی کنید ، در غیر این صورت برنامه شما دچار خطا خواهد شد . همان طور که در کد می بینید @override در کد نوشته شده ، به کاری که ما کردیم ، override کردن متد می گویند و این علامت @Override انوتیشن override است .

اشتراک گذاری:
http://darkoobweb.com/?p=219

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

سلام ، من پوریا هستم با جاوا آشنایی دارم به هوش مصنوعی و امنیت علاقه مندم و امید وارم آموزش هایی که در وب سایت قرار می دم برای شما مفید باشه ، موفق باشید {^}

پاسخ دهید

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