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:
- 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.
- 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.
- Ç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.
- 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.