تاریخ امروز:21 اردیبهشت 1400
اینترفیس (interface)‌ در جاوا

اینترفیس (Interface)‌ در جاوا

در این پست می‌خوام آموزش کار با اینترفیس (Interface)‌ در جاوا رو بدم خدمتتون. اینترفیس (Interface)‌ یک نوع مرجع می‌باشد و مجموعه‌ای از متدهای abstract هستش. وقتی که کلاس، اینترفیس (Interface)‌ را implements می‌کند، در واقع توافق می‌کند که تمامی دستورات داخل آن اینترفیس (Interface)‌ رو در خود پیاده‌سازی کند.

برای درک بهتر در زیر من یک اینترفیس تعریف کردم:

package Interface;

public interface ITelephone {
    void powerOn();
    void dial(int phoneNumber);
    void answer();
    boolean callPhone(int phoneNumber);
    boolean isRinging();
}

حالا کلاسش رو براش می‌نویسم:

package Interface;

public class DeskPhone implements ITelephone {
    private int myNumber;
    private boolean isRinging;

    public DeskPhone(int myNumber) {
        this.myNumber = myNumber;
    }

    @Override
    public void powerOn() {
        System.out.println("No Action Needed, Desk phone does not have a power btn");
    }

    @Override
    public void dial(int phoneNumber) {
        System.out.println("Rinnnnggggg!!! Phone Number="+phoneNumber+ ", Desktop Phone az Ringing");
    }

    @Override
    public void answer() {
        if(isRinging){
            System.out.println("Answering the desk phone");
            isRinging = false;
        }
    }

    @Override
    public boolean callPhone(int phoneNumber) {
        if(phoneNumber == myNumber){
            isRinging = true;
            System.out.println("Ring Ring");
        }else{
            isRinging = false;
        }
        return isRinging;
    }

    @Override
    public boolean isRinging() {
        return isRinging;
    }
}

حالا Main به این صورت میشه:

import Interface.DeskPhone;
import Interface.ITelephone;

import java.util.Arrays;

public class Main {

    public static void main(String[] args) {
        ITelephone SoroushPhone;
        SoroushPhone = new DeskPhone(1234567);
        SoroushPhone.powerOn();
        SoroushPhone.callPhone(1213123123);
        SoroushPhone.answer();

    }
}

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

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

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