Sobes.tech
Junior

Java'da Nesne Yönelimli Programlama (OOP) nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Java'da Nesne Yönelimli Programlama, "nesneler" kavramına dayanan bir paradigmadır; bu nesneler veri (özellikler) ve yöntemler (eylemler) içerir.

Java'da OOP'nin temel ilkeleri:

  1. Kapsülleme: Verilerin ve yöntemlerin bir nesne içinde gizlenmesi, bunlara sadece belirli arayüzler aracılığıyla erişilebilir. Bu, veri güvenliğini ve modülerliği sağlar.
  2. Miras: Var olan sınıflardan (üst sınıflar) yeni sınıflar (alt sınıflar) oluşturmayı sağlar; bu sınıflar özelliklerini ve yöntemlerini miras alır. Bu, kodun yeniden kullanılmasını teşvik eder.
  3. Çok Biçimlilik: Farklı sınıflardan nesnelerin aynı arayüz üzerinden kullanılmasını sağlar. Bu, esneklik ve genişletilebilirlik sunar. Derleme zamanı çok biçimlilik (yöntem aşırı yükleme) ve çalışma zamanı çok biçimlilik (yöntem geçersiz kılma) olarak ayrılır.
  4. Soyutlama: Bir nesnenin temel özelliklerini vurgulama ve önemsiz detayları gizleme. Bu, karmaşık sistemleri basitleştirmeye yardımcı olur.

Java'da bir sınıf örneği:

public class Car {
    private String marka; // Kapsüllenmiş özellik
    private String model;
    private int yıl;

    public Car(String marka, String model, int yıl) { // Yapıcı
        this.marka = marka;
        this.model = model;
        this.yıl = yıl;
    }

    public void displayInfo() { // Yöntem
        System.out.println("Marka: " + marka + ", Model: " + model + ", Yıl: " + yıl);
    }

    // Getter ve Setter (özel özelliklere erişim için)
    public String getMarka() {
        return marka;
    }

    public void setMarka(String marka) {
        this.marka = marka;
    }
}

OOP ilkelerinin kullanımına örnek:

// Miras
public class ElectricCar extends Car {
    private int bataryaKapasitesi;

    public ElectricCar(String marka, String model, int yıl, int bataryaKapasitesi) {
        super(marka, model, yıl); // Üst sınıf yapıcı çağrısı
        this.bataryaKapasitesi = bataryaKapasitesi;
    }

    @Override // Çok biçimlilik (yöntem geçersiz kılma)
    public void displayInfo() {
        super.displayInfo(); // Üst sınıf yöntemini çağır
        System.out.println("Batarya Kapasitesi: " + bataryaKapasitesi + " kWh");
    }
}

// Nesne kullanımı
public class Main {
    public static void main(String[] args) {
        Car benimArabam = new Car("Toyota", "Camry", 2020);
        Car benimElektrikliArabam = new ElectricCar("Tesla", "Model 3", 2022, 75);

        benimArabam.displayInfo();
        benimElektrikliArabam.displayInfo(); // Çok biçimlilik etkin
    }
}

OOP'nin avantajları:

  • Kodun yeniden kullanımı: Miras yoluyla.
  • Bakım kolaylığı: Değişiklikler sadece belirli nesne veya sınıfleri etkiler.
  • Esneklik ve genişletilebilirlik: Çok biçimlilik sayesinde.
  • Daha iyi kod organizasyonu: Sistemi modüllere (nesnelere) bölme.
  • Veri güvenliği: Kapsülleme aracılığıyla.