Java Eğitimleri

Java ANA SAYFA Java'ya Giriş Java Başlarken Java Sözdizimi Java Yorumları Java Değişkenleri Java Veri Türleri Java Tipi Döküm Java Operatörleri Java Dizeleri Java Matematiği Java Booleanları Java Eğer... Başka Java Anahtarı Java while Döngüsü Döngü için Java Java Ara/Devam Java Dizileri

Java Yöntemleri

Java Yöntemleri Java Yöntemi Parametreleri Java Yöntemi Aşırı Yüklemesi Java Kapsamı Java Özyineleme

Java Sınıfları

Java OOP'si Java Sınıfları/Nesneleri Java Sınıfı Nitelikleri Java Sınıfı Yöntemleri Java Oluşturucuları Java Değiştiriciler Java Kapsülleme Java Paketleri / API Java Kalıtımı Java Polimorfizmi Java İç Sınıfları Java Soyutlama Java Arayüzü Java Numaraları Java Kullanıcı Girişi Java Tarihi Java Dizi Listesi Java Bağlantılı Listesi Java Hash Haritası Java HashSeti Java Yineleyici Java Sarıcı Sınıfları Java İstisnaları Java Normal İfadesi Java Konuları Java Lambda

Java Dosya İşleme

Java Dosyaları Java Dosyaları Oluşturma/Yazma Java Okuma Dosyaları Java Dosyaları Sil

Java Nasıl Yapılır

İki Sayı Ekle

Java Referansı

Java Anahtar Kelimeleri Java Dize Yöntemleri Java Matematik Yöntemleri

Java Örnekleri

Java Örnekleri Java Derleyici Java Alıştırmaları Java Testi Java Sertifikası


Java Arayüzü


Arayüzler

Java'da soyutlama elde etmenin başka bir yolu da arayüzlerdir.

An , ilgili yöntemleri boş gövdelerle gruplandırmak için kullanılan interfacetamamen " soyut bir sınıftır ":

Örnek

// interface
interface Animal {
  public void animalSound(); // interface method (does not have a body)
  public void run(); // interface method (does not have a body)
}

Arayüz yöntemlerine erişmek için, arayüzün başka bir sınıf tarafından implements ( yerine extends) anahtar kelimesiyle "uygulanması" (bir tür miras alınmış gibi) olması gerekir. Arayüz yönteminin gövdesi "implement" sınıfı tarafından sağlanır:

Örnek

// Interface
interface Animal {
  public void animalSound(); // interface method (does not have a body)
  public void sleep(); // interface method (does not have a body)
}

// Pig "implements" the Animal interface
class Pig implements Animal {
  public void animalSound() {
    // The body of animalSound() is provided here
    System.out.println("The pig says: wee wee");
  }
  public void sleep() {
    // The body of sleep() is provided here
    System.out.println("Zzz");
  }
}

class Main {
  public static void main(String[] args) {
    Pig myPig = new Pig();  // Create a Pig object
    myPig.animalSound();
    myPig.sleep();
  }
}

Arayüzlerle İlgili Notlar:

  • Soyut sınıflar gibi , arabirimler nesne oluşturmak için kullanılamaz (yukarıdaki örnekte, MyMainClass'ta bir "Animal" nesnesi oluşturmak mümkün değildir)
  • Arayüz yöntemlerinin bir gövdesi yoktur - gövde "implement" sınıfı tarafından sağlanır
  • Bir arabirimin uygulanmasında, tüm yöntemlerini geçersiz kılmalısınız.
  • Arayüz yöntemleri varsayılan olarak abstractve public
  • Arayüz öznitelikleri varsayılan publicolarak vardır staticvefinal
  • Bir arabirim bir kurucu içeremez (nesneleri oluşturmak için kullanılamayacağından)

Arayüzler Neden ve Ne Zaman Kullanılır?

1) Güvenliği sağlamak için - belirli ayrıntıları gizleyin ve yalnızca bir nesnenin (arayüzün) önemli ayrıntılarını gösterin.

2) Java "çoklu kalıtımı" desteklemez (bir sınıf yalnızca bir üst sınıftan miras alabilir). Ancak, sınıf birden fazla arabirim uygulayabildiğinden , arabirimlerle elde edilebilir . Not: Birden çok arabirim uygulamak için bunları virgülle ayırın (aşağıdaki örneğe bakın).


Çoklu Arayüzler

Birden çok arabirim uygulamak için bunları virgülle ayırın:

Örnek

interface FirstInterface {
  public void myMethod(); // interface method
}

interface SecondInterface {
  public void myOtherMethod(); // interface method
}

class DemoClass implements FirstInterface, SecondInterface {
  public void myMethod() {
    System.out.println("Some text..");
  }
  public void myOtherMethod() {
    System.out.println("Some other text...");
  }
}

class Main {
  public static void main(String[] args) {
    DemoClass myObj = new DemoClass();
    myObj.myMethod();
    myObj.myOtherMethod();
  }
}