Java Paketleme Mantığında Composition

Sınıfları bir başka sınıf içerisinde bir araya getirme

SINIFLARIN TEKRAR KULLANILMASI
Belli bir amaç için yazılmış ve doğruluğu kanıtlanmış olan sınıfları, yeni uygulamaların içerisinde kullanmak hem iş süresini kısaltacaktır hem de yeni yazılan uygulamalarda hata çıkma riskini en aza indirgeyecektir. Uygulamalarımızda daha evvelden yazılmış ve doğruluğu kanıtlanmış olan sınıfları tekrardan kullanmanın iki yöntemi bulunur.

Birinci yöntem komposizyon’dur. Bu yöntem sayesinde daha önceden yazılmış ve doğruluğu kanıtlanmış olan sınıf/sınıfları, yeni yazılan sınıfın içerisinde doğrudan kullanabilme şansına sahip oluruz.

İkinci yöntem ise kalıtımdır (inheritance). Bu yöntemde yeni oluşturacağımız sınıf, daha evvelden yazılmış ve doğruluğu kanıtlanmış olan sınıftan türetilir; böylece yeni oluşan sınıf, türetildiği sınıfın özelliklerine ve işlevlerine sahip olur; Ayrıca oluşan bu yeni sınıfın kendisine ait yeni özellikleri ve işlevleri de olabilir. 

 Java Paketleme Mantığında Composition
Komposizyon

Gösterim-5.1

class Meyva {
  //...
}
 
 

  Gösterim-5.2:

 class Elma {
  private Meyva m = new Meyva();}
 
 

 Elma sınıfı, Meyva sınıfını doğrudan kendi içerisinde tanımlayarak, Meyva sınıfının içerisindeki erişilebilir olan özellikleri kullanabilir. Buradaki yapılan iş Elma sınıfını Meyva sınıfına bağlamaktır.

Şekil-5.1. Komposizyon-I
Örnek-5.1:  Motor.java 

public class Motor {
  private static int motor_gucu = 3600;
 
  public void calis() {
        System.out.println("Motor Calisiyor") ;
  }
 
  public void dur() {
        System.out.println("Motor Durdu") ;
  }  
}
 
 

Şimdi bu Motor sınıfını, arabamızın içerisine yerleştirelim;
Örnek-5.2:  AileArabasi.java

public class AileArabasi {
  private Motor m = new Motor();
  public void hareketEt() {
        m.calis();
        System.out.println("Aile Arabasi Calisti");
  }
  public void dur() {
        m.dur();
        System.out.println("Aile Arabasi Durdu");
  }
  public static void main(String args[]) {
        AileArabasi aa = new AileArabasi() ;
        Aa.hareketEt();
        Aa.dur();
  }
}
 
 

AileArabası sınıfının içerisine, Motor tipinde global bir alan yerleştirilerek, bu iki sınıf birbirine bağlanmış oldu. AileArabası sınıfının hereketEt() ve dur() metotlarında, önce Motor sınıfına ait yordamlar (methods) direk olarak çağrıldı.

Motor sınıfının private erişim belirleyicisine sahip olan motor_gucu alanına, AileArabasi sınıfının içerisinde ulaşamayız. AileArabasi sınıfı Motor sınıfının sadece iki adet public yordamına (method) erişebilir: calis() ve dur(). Olaylara kuş bakışı bakarsak, karşımızdaki manzara aşağıdaki gibidir. 

Java Paketleme Mantığında Composition

Alıntıdır.

Dilek Olgaç

 

Yorumunuzu Ekleyin


Yükleniyor...
Yükleniyor...