OOP İlkeleri
PHP'de Nesne Yönelimli Programlama (OOP) kullanarak sınıflar ve nesneler oluşturabilirsiniz. OOP, kodunuzu daha düzenli ve modüler hale getirmenizi sağlar. OOP'nin temelinde, kodu nesnelere ayırmak ve her nesnenin kendi işlevlerini ve özelliklerini tanımlamak yer alır.
OOP'nin temel ilkeleri şunlardır:
Encapsulation (Kapsülleme): Sınıflar, verileri ve işlevleri bir arada tutarak kapsülleme yapar. Bu sayede, dışarıdaki kodlar sınıfın iç yapısına müdahale edemez.
Inheritance (Kalıtım): Sınıfların birbirinden miras alması, kod tekrarını önler ve programlamayı daha modüler hale getirir.
Polymorphism (Çok biçimlilik): Aynı isme sahip işlevlerin, farklı sınıflar tarafından farklı şekilde uygulanabilmesini sağlar.
Şimdi bu ilkeleri örneklerle inceleyelim:
Encapsulation (Kapsülleme):
Aşağıdaki örnek, kapsülleme özelliğini göstermektedir. Bir "Kedi" sınıfı oluşturuyoruz ve kedinin adını ayarlamak ve almak için işlevler oluşturuyoruz. Ancak, kedinin yaşı sınıfın içinde saklanır ve dışarıdan doğrudan erişilemez.
class Kedi {
private $ad;
private $yas;
public function setAd($ad) {
$this->ad = $ad;
}
public function getAd() {
return $this->ad;
}
public function setYas($yas) {
$this->yas = $yas;
}
}
$kedi = new Kedi();
$kedi->setAd("Minnoş");
echo $kedi->getAd(); // Output: Minnoş
Inheritance (Kalıtım):
Aşağıdaki örnek, kalıtım özelliğini göstermektedir. Bir "Hayvan" sınıfı oluşturuyoruz ve bu sınıftan türeyen "Kedi" ve "Köpek" sınıfları oluşturuyoruz. Bu sayede, hayvanlarla ilgili işlevleri tek bir yerde tanımlayabiliriz.
// Hayvan sınıfı
class Hayvan {
public $isim;
public $tur;
public function konus() {
echo "Hayvan konuşuyor";
}
}
// Kedi sınıfı, Hayvan sınıfından kalıtım alıyor
class Kedi extends Hayvan {
public $renk;
public function miyavla() {
echo "Miyav!";
}
}
// Köpek sınıfı, Hayvan sınıfından kalıtım alıyor
class Köpek extends Hayvan {
public $irk;
public function havla() {
echo "Hav hav!";
}
}
// Kedi nesnesi oluşturma ve özelliklerine erişme
$kedi = new Kedi();
$kedi->isim = "Tekir";
$kedi->tur = "Ev kedisi";
$kedi->renk = "Siyah-beyaz";
// Köpek nesnesi oluşturma ve özelliklerine erişme
$kopek = new Köpek();
$kopek->isim = "Max";
$kopek->tur = "Golden Retriever";
$kopek->irk = "Yaban köpeği";
// Nesnelerin özelliklerine erişme ve yöntemlerini çağırma
echo $kedi->isim . " " . $kedi->renk . " bir " . $kedi->tur . "<br>";
$kedi->miyavla();
echo "<br>";
echo $kopek->isim . " " . $kopek->irk . " bir " . $kopek->tur . "<br>";
$kopek->havla();
Polymorphism (Çok biçimlilik)
Polymorphism (Çok biçimlilik), OOP'nin temel ilkelerinden biridir ve farklı nesne türlerinin aynı arayüzü kullanarak farklı davranışlar sergileyebilmesini sağlar. Bu, kodun daha ölçeklenebilir ve sürdürülebilir hale gelmesine yardımcı olur.
Bir örnek oluşturmak için, hayvanlar sınıfını ele alalım. Hayvanlar sınıfında, konuşma fonksiyonu tanımlanmıştır. Bu fonksiyonu, farklı hayvan türleri için kullanmak istediğimizde, türlerin konuşma biçimleri farklı olacaktır. Örneğin, kedi miyavlayabilir, köpek havlayabilir, kuş ötebilir vb. Bunun için, Polymorphism konseptini kullanabiliriz.
phpCopy code//Hayvanlar sınıfı oluşturalım
class Hayvanlar {
//tüm hayvanlar konuşabilir, ama konuşmaları farklıdır
public function konus() {
return "Hayvanlar konuşuyor!";
}
}
//Kedi sınıfını oluşturalım ve Hayvanlar sınıfından kalıtalım
class Kedi extends Hayvanlar {
public function konus() {
return "Miyav!";
}
}
//Köpek sınıfını oluşturalım ve Hayvanlar sınıfından kalıtalım
class Kopek extends Hayvanlar {
public function konus() {
return "Hav hav!";
}
}
//Kuş sınıfını oluşturalım ve Hayvanlar sınıfından kalıtalım
class Kus extends Hayvanlar {
public function konus() {
return "Cik cik!";
}
}
//Hayvanlar nesneleri oluşturalım ve konuşmalarını yazdıralım
$hayvanlar = array(new Kedi(), new Kopek(), new Kus());
foreach($hayvanlar as $hayvan) {
echo $hayvan->konus() . "<br>";
}
Bu örnekte, Hayvanlar sınıfı oluşturduk ve konuşma fonksiyonunu tanımladık. Ardından, Kedi, Köpek ve Kuş sınıflarını Hayvanlar sınıfından kalıttık ve kendi konuşma fonksiyonlarımızı tanımladık. Son olarak, Hayvanlar nesneleri oluşturduk ve konuşmalarını yazdırdık. Bu örnekte, Polymorphism konseptini kullanarak, farklı hayvan türleri için farklı konuşma biçimleri sağladık.
Last updated
Was this helpful?