Java ile Nesne Yönelimli Programlama
Nesne Yönelimli Programlama Nedir?
Nesne Yönelimli Programlama (Object-Oriented Programming - OOP), yazılım geliştirme sürecinde veri ve bu veriye işlevsellik sağlayan yöntemleri bir araya getirerek programları modelleme yöntemidir. OOP, dört temel prensibe dayanır: sınıflar, nesneler, kalıtım ve çok biçimlilik.
OOP'nin Temel Prensipleri:
- Sınıflar ve Nesneler: Nesne tabanlı yapı taşları.
- Kapsülleme: Verilerin ve yöntemlerin bir sınıf içinde toplanması.
- Kalıtım: Bir sınıfın başka bir sınıftan türetilmesi.
- Polimorfizm (Çok Biçimlilik): Aynı isimli yöntemlerin farklı şekillerde kullanılması.
Java'da Sınıflar ve Nesneler
Java, OOP prensiplerini uygulamak için sınıflar ve nesneler kullanır. Bir sınıf, veri (alanlar) ve bu veriye işlevsellik sağlayan yöntemlerin birleşimidir. Nesne ise bu sınıfın somut bir örneğidir.
Örnek Java Sınıfı ve Nesnesi:
public class Araba {
String marka;
int model;
void bilgileriYazdir() {
System.out.println("Marka: " + marka + ", Model: " + model);
}
}
public class Main {
public static void main(String[] args) {
Araba araba1 = new Araba();
araba1.marka = "Toyota";
araba1.model = 2020;
araba1.bilgileriYazdir();
}
}
Kapsülleme (Encapsulation)
Kapsülleme, bir sınıfın alanlarını gizleyerek yalnızca belirli yöntemler aracılığıyla erişilmesine izin verme prensibidir. Bu, verilerin korunmasına ve sınıfın dışarıdan yanlış kullanılmasını önlemeye yardımcı olur.
Örnek Kapsülleme:
public class Kisi {
private String isim;
private int yas;
public String getIsim() {
return isim;
}
public void setIsim(String isim) {
this.isim = isim;
}
public int getYas() {
return yas;
}
public void setYas(int yas) {
if (yas > 0) {
this.yas = yas;
}
}
}
Kalıtım (Inheritance)
Kalıtım, bir sınıfın başka bir sınıftan türemesi ve üst sınıfın özelliklerini ve yöntemlerini miras almasıdır. Bu, kodun yeniden kullanılabilirliğini artırır ve yazılımın bakımını kolaylaştırır.
Örnek Kalıtım:
public class Hayvan {
public void sesCikar() {
System.out.println("Hayvan ses çıkarıyor");
}
}
public class Kopek extends Hayvan {
@Override
public void sesCikar() {
System.out.println("Köpek havlıyor");
}
}
public class Main {
public static void main(String[] args) {
Kopek kopek = new Kopek();
kopek.sesCikar(); // Köpek havlıyor
}
}
Polimorfizm (Çok Biçimlilik)
Polimorfizm, bir nesnenin farklı biçimlerde davranabilme yeteneğidir. Java'da polimorfizm, yöntemlerin aşırı yüklenmesi (overloading) ve geçersiz kılınması (overriding) ile sağlanır.
Örnek Polimorfizm:
public class Hayvan {
public void sesCikar() {
System.out.println("Hayvan ses çıkarıyor");
}
}
public class Kedi extends Hayvan {
@Override
public void sesCikar() {
System.out.println("Kedi miyavlıyor");
}
}
public class Main {
public static void main(String[] args) {
Hayvan hayvan = new Kedi();
hayvan.sesCikar(); // Kedi miyavlıyor
}
}
Sonuç
Java ile Nesne Yönelimli Programlama, yazılım geliştirme sürecinde kodun yeniden kullanılabilirliğini, bakımını ve genişletilebilirliğini artırır. OOP'nin temel prensiplerini anlayarak, daha modüler ve esnek yazılımlar geliştirebilirsiniz.