menusearch
javapro.ir
جستجو
۱۳۹۵/۱۱/۳ یکشنبه
(4)
(0)
♨️ جلسه بیست و هفتم - اینترفیس (Interface)
♨️ جلسه بیست و هفتم -  اینترفیس (Interface)

اگه میخوای موارد زیر از جاوا رو بدونی جلسه بیست و هفتم رو دانلود کن


اینترفیس(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)

 

آموزش interface در جاوا

 

بعد از انتخاب گزینه new زیر شاخه جدیدی که باز می شود گزینه interface را انتخاب می کنیم: تصویر(2)

 

آموزش آسان interface در جاوا

 

بعد از انتخاب interface پنجره جدیدی تحت عنوان New Jave Interface باز می شود.که در این پنجره در بخش Name آن یک نام برای اینترفیس انتخاب کرده و دکمه Finish را می زنیم. تصویر(3)و(4)

 

دستور implements در جاوا

که در اینجا نام Car را برای اینترفیس انتخاب کرده ایم و سایر گزینه ها را به حالت پیشفرض قرار داده و در پایان دکمه Finish را می زنیم: تصویر (4)

 

آموزش اینترفیس در جاوا

 

نتیجه این مراحل در ایکلیپس ایجاد یک interface با نام Car می باشد: تصویر (6)

 

ساخت اینترفیس در جاوا

 

راه دوم و سریع تر این هست که از میان ابزارهای زیر منوبار گزینه ای که در تصویر نشان داده ایم را انتخاب کرده و مانند مراحل قبل اینترفیس را نام گذاری کرده و دکمه finish را بزنیم:تصویر(7) و(8)

 

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

 

سایر مراحل بعدی نیز مانند روش اول می باشد.


•    پس کلا روش ایجاد یک اینترفیس شبیه به روش ایجاد یک کلاس هست با این تفاوت که کلمه کلیدی آنها متفاوت است.


خصوصیاتی که یک اینترفیس باید داشته باشد:


1.    تمامی متدهای درون اینترفیس بدون بدنه و انتزاعی هستند و نیازی نیست که با کلمه کلیدی abstract این متدها را انتزاعی اعلام کنید.


2.    بهتر است که متدهای درون اینترفیس را public  اعلام کنیم.

 

public interface Animal {

    public void sleep();

    public void eat();
    public void run();

}


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


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


 اینترفیس نیز حکم نقشه ای را دارد که اگر به کلاسی بدهیم آن کلاس موظف است مو به مو تمامی رفتارهایی که اینترفیس دارد را در بدنه خود پیاده سازی کند.


خب تا اینجا فهمیدیم که در کلاس هامون از اینترفیس استفاده می کنیم.حالا نحوه استفاده کلاس از اینترفیس را بررسی می کنیم:


پیاده سازی اینترفیس در کلاس:
وقتی که یک کلاس یک اینترفیس را در خود پیاده سازی میکند، می تونیم تصور کنیم که کلاس قراردادی را به امضا رسانده است که موافقت کرده است که تمام رفتارها و متدهای اینترفیس را در بدنه خود اجرا کند.


پس اگر یک کلاس قصد داشت یک اینترفیس را در خود پیاده سازی کند بلاجبار باید تمامی متدهای اینترفیس را در بدنه خود پیاده سازی کند.
یک کلاس با استفاده از کلمه کلیدی 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);

}


حال کلاس A اینترفیس B را پیاده سازی کرده است:


package interface_javalike;
public class A implements B {

    public void print(String name) {

    }
    public int sum(int a, int b) {

        return 0;
    }
}


همان طور که مشاهده می کنید تمامی متدهای اینترفیس B در کلاس A پیاده سازی و بازنویسی  شده است.

 

 

....ادامه این جلسه آموزشی را می توانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.

 



این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)

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

 

 


نشر این مطلب با ذکر منبع (لینک سایت) بلامانع است.
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا عضو کانال تلگرام ما شوید.
نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

0 نظر
شرکت سازنده