اگه میخوای موارد زیر از جاوا رو بدونی جلسه بیست و هفتم رو دانلود کن
اینترفیس(Interface)
اینترفیس چیست؟
نحوه پیاده سازی یک اینترفیس
خصوصیاتی که یک اینترفیس باید داشته باشد
پیاده سازی اینترفیس در کلاس
نحوه نوشتن پیاده سازی اینترفیس در کلاس
قوانین پیاده سازی یک اینترفیس
چگونه یک اینترفیس، اینترفیس دیگر را به ارث میبرد
وراثت چندگانه در اینترفیس
درک بهتر رابطه بین کلاس ها و اینترفیس
درک بهتر وراثت چندگانه توسط اینترفیس در جاوا
تمامی مفاهیم با مثال ساده توضیح داده شده است
اینترفیس چیست؟
اینترفیس مانند یک کلاس بنظر میرسد اما یک کلاس نیست!!! یک اینترفیس مثل کلاس میتواند متغیر و متد داشته باشد با این تفاوت که متدهای درون یک اینترفیس مثل متدهای کلاس abstract (انتزاعی) بدنه ندارند.یعنی متدهای یک اینترفیس دارای نوع، نام، پارامتر هستند اما بدنه ندارند.
در اینترفیس متغیرها میتوانند public، static ،final، default اعلام و تعریف شوند.
تمامی متدهای درون اینترفیس بدون بدنه هستند.به عبارتی میتوان گفت که اینترفیس ها مجموعه ای از متدهای abstract یا انتزاعی هستند.
نحوه پیاده سازی یک اینترفیس:
هنگام تعریف یک اینترفیس ابتدا از کلمه کلیدی interface استفاده میکنیم. بعد از کلمه کلیدی interface یک نام برای آن انتخاب کرده و با باز و بسته کردن آکولاد {} بدنه آن را تشکیل میدهیم.
• می توانیم ابتدای کلمه کلیدی interface از کلمه کلیدی public نیز استفاده کنیم.
• بهتر است نام اینترفیس با حروف بزرگ شروع شود.
• روش تعریف اینترفیس شبیه به روش تعریف یک کلاس است با این تفاوت که بجای کلمه کلیدی class از کلمه کلیدی interface استفاده کرده ایم.
پس یک بار دیگر روش ایجاد یک اینترفیس را گام به گام مرور میکنیم:
1) استفاده از کلمه کلیدی public
public |
2) استفاده از کلمه کلیدی interface
public interface |
3) تعیین نام برای اینترفیس
public interface Name |
4) استفاده از دو بلوک آکولاد باز و بسته به عنوان بدنه اینترفیس
public interface Name { } |
در زیر یک اینترفیس (interface) با نام Animal داریم:
public interface Animal { } |
حالا در زیر یک اینترفیس (interface) با نام Animal داریم که دو متد بدون بدنه در آن تعریف شده اند:
package interface_javalike; public interface Animal { public void sleep (); public void eat(); } |
در مثال زیر با خطای کامپایل برخورد میکنیم،زیرا در اینترفیس متدهای ما حق داشتن بدنه را ندارند:
شما میتوانید مانند کلاس یک اینترفیس را در نرم افزار ایکلیپس با چند کلیک ایجاد کنید:
برای ایجاد یک اینترفیس در Eclipse به روش زیر عمل میکنیم:
ابتدا روی پکیج مورد نظر کلیک سمت راست کرده و گزینه new را انتخاب میکنیم: تصویر(1)
بعد از انتخاب گزینه new زیر شاخه جدیدی که باز میشود گزینه interface را انتخاب میکنیم: تصویر(2)
بعد از انتخاب interface پنجره جدیدی تحت عنوان New Jave Interface باز میشود.که در این پنجره در بخش Name آن یک نام برای اینترفیس انتخاب کرده و دکمه Finish را میزنیم. تصویر(3)و(4)
که در اینجا نام Car را برای اینترفیس انتخاب کرده ایم و سایر گزینه ها را به حالت پیشفرض قرار داده و در پایان دکمه Finish را میزنیم: تصویر (4)
نتیجه این مراحل در ایکلیپس ایجاد یک interface با نام Car است: تصویر (6)
راه دوم و سریع تر این هست که از میان ابزارهای زیر منوبار گزینه ای که در تصویر نشان داده ایم را انتخاب کرده و مانند مراحل قبل اینترفیس را نام گذاری کرده و دکمه finish را بزنیم:تصویر(7) و(8)
سایر مراحل بعدی نیز مانند روش اول است.
• پس کلا روش ایجاد یک اینترفیس شبیه به روش ایجاد یک کلاس هست با این تفاوت که کلمه کلیدی آنها متفاوت است.
خصوصیاتی که یک اینترفیس باید داشته باشد:
1. تمامی متدهای درون اینترفیس بدون بدنه و انتزاعی هستند و نیازی نیست که با کلمه کلیدی abstract این متدها را انتزاعی اعلام کنید.
2. بهتر است که متدهای درون اینترفیس را public اعلام کنیم.
public interface Animal { public void sleep (); public void eat(); } |
تا اینجا با نحوه ایجاد اینترفیس در جاوا آشنا شدیم.حالا اینترفیس چه استفاده هایی داره؟! ما در کلاس های خود میتوانیم از اینترفیس ها استفاده کنیم.به عبارتی میتوانیم اینترفیس ها را در کلاس خود پیاده سازی کنیم.خب چطوری؟!!! اصلا اینترفیس چه کاربردی در کلاس هامون داره؟!!!
اینترفیس حکم یک نقشه را برای کلاس ما دارد همان طور که در نقشه ساختمانی که روی کاغذ رسم شده است حاوی اطلاعات ساختمانی هست که قرار است پیاده سازی و ایجاد شود و پیمانکاران و مهندسان و.... بلااجبار باید مو به مو فونداسیون و تعداد اتاق ها و سالن پذیرایی و... را اجرا کنند.
اینترفیس نیز حکم نقشه ای را دارد که اگر به کلاسی بدهیم آن کلاس موظف است مو به مو تمامی رفتارهایی که اینترفیس دارد را در بدنه خود پیاده سازی کند.
خب تا اینجا فهمیدیم که در کلاس هامون از اینترفیس استفاده میکنیم.حالا نحوه استفاده کلاس از اینترفیس را بررسی میکنیم:
پیاده سازی اینترفیس در کلاس:
وقتی که یک کلاس یک اینترفیس را در خود پیاده سازی میکند، میتونیم تصور کنیم که کلاس قراردادی را به امضا رسانده است که موافقت کرده است که تمام رفتارها و متدهای اینترفیس را در بدنه خود اجرا کند.
پس اگر یک کلاس قصد داشت یک اینترفیس را در خود پیاده سازی کند بلاجبار باید تمامی متدهای اینترفیس را در بدنه خود پیاده سازی کند.
یک کلاس با استفاده از کلمه کلیدی implements میتواند یک اینترفیس (interface) را در خود پیاده سازی کند.
چطوری؟! به این صورت که هنگام تعریف کلاس، بعد از نام کلاس از کلمه کلیدی implementsاستفاده کرده و بعد از کلمه کلیدی implements نام اینترفیس مورد نظر را میآوریم.
نحوه نوشتن پیاده سازی اینترفیس در کلاس:
public class NameClass implements NameInterface { |
نحوه استفاده از اینترفیس شبیه به ارث بردن یک کلاس هست با این تفاوت که بجای کلمه کلیدی extends از کلمه کلیدی implements استفاده میکنیم.
همان طور که گفتیم بعد از پیاده سازی یک اینترفیس در یک کلاس تمامی متدهای اینترفیس باید در کلاس بلاجبار پیاده سازی شود.
مثال:
اینترفیس B که دو متد انتزاعی(تمامی متدهای درون اینترفیس انتزاعی هستند) بدون بدنه در آن تعریف کرده ایم:
package interface_javalike; public interface B { public void print(String name); public int sum(int a, int b); }
public void print(String name) { } return 0; |
همان طور که مشاهده میکنید تمامی متدهای اینترفیس B در کلاس A پیاده سازی و بازنویسی شده است.
....ادامه این جلسه آموزشی را میتوانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)
لینک دانلود
بستن *نام و نام خانوادگی * پست الکترونیک * متن پیام |
دوره های آموزشی برنامه نویسی
انجام پروژه های برنامه نویسی
تدریس خصوصی برنامه نویسی
بیش از 7 سال از فعالیت جاواپرو میگذرد
جاواپرو دارای مجوز نشر دیجیتال از وزارت فرهنگ و ارشاد اسلامی است
جهت ارتباط مستقیم با جاواپرو در واتساپ و تلگرام :
09301904690
بستن دیگر باز نشو! |