Java | OOP mantığı ve Abstract ve İnterface Sınıflarının Kullanımı

 .
Java Oop kullanımı 
Java Oop Hakındaki temel bilgileri Buraya Tıklayarak Dinleyebilir ve anlayabilirsiniz.
Abstract (Soyut) sınıf Nedir ?

Ortak özellikleri modellemek için javada abstract sınıflar kullanılır.Soyut sınıflardan interface sınıflarda olduğu gibi somut nesneler oluşturmaz

public abstract class Otomobil
{
      private string Marka;
      private int Model ;
      private int Vites ;

// alt sınıflar tarafından iplemen edilmek zorunda olan  @return Marka  string 
public abstract string GetMarka();

// alt sınıflar tarafından kullanılabilir yada tekrardan re-implement edilebilir bir metot
public int getModel(){
  return this.Model;
}
Interface sınıflarının aksine , soyut sınıflarda istenilen metotdları normall bir Java sınıfında olduğu gibi İmplemente edilebilir.

Otomobil.java sınıfı bir soyut sınıftır getMarka() isminde bir soyut metodu ve getModel() isminde normal bir metodu bulunmaktadır. getMarka() soyut olduğundan, alt sınıfların bu metodu mutlaka implemente etmeleri gerekmektedir.

Honda isminde otomobil sınıfındaki özellikleri devralan bir alt sınıf tanımlıyoruz.Sınıf tanımlamak için exteds kullanılır


Otomobil sınıfında getMarka() soyut olarak tanımlandığı için, alt sınıflarda mutlaka getMarka() isminde implementasyonu yapılmıış bir metodun bulunması gerekmektedir. Honda  sınıfı, tanımlamak zorunda olmadan, Otomobil sınıfında yeralan getModel() metodunu  ve sınıf degiskenlerini kullanabilir. Java gibi nesneye yönelik programlama (OOP = object oriented programming) dillerinde, ortak değerler bir ana sınıfta toplanır ve alt sınıflarda, sadece alt sınıf için gerekli ekleme ve değişiklikler yapılarak kullanılır. Alt sınıflar, istedikleri taktirde, üst sınıfta tanımlanmış bir metodu, kendi bünyelerinde değiştirebilirler (reimplementasyon).

Soyut sınıflar interface sınıflarının aksine Tecrübeli java Programcıları trafından pek fazla tercih edilemzler.
Kompleks sınıflar hiyerarşi sınıfların bakım ve geliştirilmesini engellerler bu problemi Çözmek için çeşitli tasarım şablonlari üretilmiştir 

İnterface Nedir ?
 Bir interface normal bir java sınıfından farksız şekilde tanımlanır . sadece tek farkı class yazılan yere Interface yazılır.Java da tanımlanmış bir inreface sınfından normal bir sınıfta oldugu gibi new operatörü ıle bir ensne oluşturulmaz . Java compiler “Cannot instantiate the type ........” hata mesajı ile karşılaşabiliriz.

public interface Otomobil  //Otomobil  interface olarak tanımlanmış.
{
   public string getMarka(); 
}

Honda  ve Audi isminde iki sınıf bulunuyor. Bu sınıflar Otomobil interface sınıfını implemente ediyorlar. Bu iki implementasyon sınıfı bünyelerinde getMarka() isminde bir metod oluşturup, bu metodu  implemente etmek  zorundalar.

Public class Honda İmplements Otomobil 
{
public string getMarka() 
{
return"Honda s2000";
}
} 

Herhangi bir Java sınıfı implements direktifini kullanrak , bir interface sınıfının sahip olduğu metotları
implemente edebilir.İmplementasyon ile interface sınıfının tanımlandığı metto gövdelerinin , alt sınıfta kodlanmasını kastediyoruz.Buna göre interface sınıflarında sadece metodlar deklare edilebilir ve implemente edilemez. İmplementasyonu altsınıflar üstlenir.

Hiç yorum yok:

Yorum Gönder