OOP (Object Oriented Programming)
OOP (Object Oriented Programming)
Nesne yönelimli programlama 4 temel ilke üzerine kuruludur.
Bir programlama dilinin nesne yönelimli programlamayı uyguladığını anlamak için bu 4 temel ilkeyi sağlıyor olması gereklidir.
Bu temel ilkeler kodların değiştirilebilirlik, yeniden kullanım ve esneklik gibi kriterlerin sağlanmasına ön ayak olurlar
Bu ilkeler;
- Encapsulation (Kapsülleme)
- Inheritance (Kalıtım)
- Polymorphism (Çok Biçimlilik)
- Abstraction (Soyutlama)
Encapsulation (Kapsülleme - Harmanlama)
Kapsülleme ilkesi, bir sınıfta ait niteliklerin ancak o sınıfa ait metotlar tarafından değiştirilebilmesi ve okunabilmesi ilkesidir.Bu ilke sayesinde nesnelerde oluşacak anlamsızlıkların önüne geçilebilir.
Ayrıca değişkenlere sınıfların dışında erişim olmaması ve bir sınıf içindeki değişkenlerin nasıl ve ne kadar olacağının da başka kodlardan saklanmış olması anlamına gelir. Böylelikle değişkenlerimizi sarmalayarak istenmeyen durumlardan korunacak bir filtre haline dönüştürebiliriz.
Erişim Belirleyiciler
Bir sınıfa ait nitelik ve davranışlara ulaşabilmek için Erişim Belirleyiciler (Access Modifier) kullanılır.
Erişim belirleyiciler (Access Modifiers); değişken, metot ve sınıfların önüne yazılır ve yazıldıkları konuların erişebilecekleri alanları belirlerler.
Private :
Yazıldığı öğenin sadece ait olduğu sınıftan doğrudan erişilebilir olduğunu ve o sınıfın dışındaki kod parçacıklarından doğrudam erişim izni olmadığını tanımlar.
Public :
Yazıldığı öğenin sadece ait olduğu sınıf için değil, diğer sınıflar tarafından doğrudan erişilebilir olmasını sağlar.Sınıflara ait nesnelerin ve diğer nesneler tarafından kullanılması istenilen metotlar için kullanılır.
Protected :
Public ve Private arasında kalan bir erişim düzenleyicidir. Protected ile tanımlanan öğeler, kendisi ile aynı pakette (package) bulunan sınıflar tarafından doğrudan erişilebilir.
Encapsulation Mantığı
bir validasyonu yapmaya yarıyor.
public class Kitap {
private int sayfaSayisi;
private String kitapAdi, yazar;
Kitap(String kitapAdi, int sayfaSayisi, String yazar) {
this.kitapAdi = kitapAdi;
this.yazar = yazar;
if (sayfaSayisi < 1) {
this.sayfaSayisi = 10;
} else {
this.sayfaSayisi = sayfaSayisi;
}
}
public int getSayfaSayisi() {
return this.sayfaSayisi;
}
public void setSayfaSayisi(int sayfaSayisi) {
if (sayfaSayisi < 1) {
this.sayfaSayisi = 10;
} else {
this.sayfaSayisi = sayfaSayisi;
}
}
}
public class Kitap {
private int sayfaSayisi;
private String kitapAdi, yazar;
Kitap(String kitapAdi, int sayfaSayisi, String yazar) {
this.kitapAdi = kitapAdi;
this.yazar = yazar;
if (sayfaSayisi < 1) {
this.sayfaSayisi = 10;
} else {
this.sayfaSayisi = sayfaSayisi;
}
}
public int getSayfaSayisi() {
return this.sayfaSayisi;
}
public void setSayfaSayisi(int sayfaSayisi) {
if (sayfaSayisi < 1) {
this.sayfaSayisi = 10;
} else {
this.sayfaSayisi = sayfaSayisi;
}
}
}
Yorumlar