Ücretsiz Teklif Oluşturalım!
Hemen cevaplamaya hazırız! Ücretsiz teklif için formu doldurun.
Kişisel verilerimin işlenmesine izin veriyorum ve kullanıcı sözleşmesi ile gizlilik politikasını kabul ediyorum.
Nesne Yönelimli Programlama (OOP), yazılım geliştirme sürecini daha modüler ve yönetilebilir hale getiren bir programlama paradigmasıdır. OOP, yazılımın bileşenlerini “nesneler” olarak tanımlayarak, bu nesnelerin etkileşimlerini ve özelliklerini yönetmeyi kolaylaştırır. PHP, nesne yönelimli programlamayı destekler ve bu makalede OOP’nin temel kavramlarını detaylı bir şekilde öğreneceksiniz.
Sınıflar, nesnelerin şablonlarıdır ve nesnelerin sahip olacağı özellikleri ve yöntemleri tanımlar. Bir sınıf, nesnelerin nasıl davranacağını ve hangi özelliklere sahip olacağını belirler.
Örnek Sınıf:
<?php
class Araba {
// Özellikler
public $marka;
public $model;
public $yil;
// Yapıcı metod
public function __construct($marka, $model, $yil) {
$this->marka = $marka;
$this->model = $model;
$this->yil = $yil;
}
// Metod
public function arabaBilgisi() {
return "Marka: " . $this->marka . ", Model: " . $this->model . ", Yıl: " . $this->yil;
}
}
?>
Nesneler, sınıflardan türetilir ve sınıfın tanımladığı özelliklere ve metodlara sahip olur. Nesneler, sınıfın somut örnekleridir.
Nesne Oluşturma ve Kullanma:
<?php
$benimAraba = new Araba("Toyota", "Corolla", 2020);
echo $benimAraba->arabaBilgisi();
?>
Özellikler, bir sınıfın veri alanlarıdır ve genellikle public
, protected
, veya private
erişim belirleyicileri ile tanımlanır. Özellikler, nesnelerin sakladığı verilerdir.
Özellik Tanımlama:
<?php
class Araba {
public $marka;
private $model; // Özel erişim belirleyici
}
?>
Metodlar, bir sınıfın işlevselliğini tanımlar ve nesneler üzerinde işlemler yapar. Metodlar, özelliklere erişim sağlar ve nesneler üzerinde çeşitli işlemler gerçekleştirir.
Metod Tanımlama ve Kullanma:
<?php
class Araba {
public $marka;
public function setMarka($marka) {
$this->marka = $marka;
}
public function getMarka() {
return $this->marka;
}
}
$benimAraba = new Araba();
$benimAraba->setMarka("BMW");
echo $benimAraba->getMarka();
?>
Kalıtım, bir sınıfın başka bir sınıftan özellikler ve metodlar almasını sağlar. Bu, kod tekrarını azaltır ve kodun yeniden kullanılabilirliğini artırır.
Kalıtım Örneği:
<?php
class Araba {
public $marka;
public function __construct($marka) {
$this->marka = $marka;
}
}
class ElektrikliAraba extends Araba {
public $bataryaKapasitesi;
public function __construct($marka, $bataryaKapasitesi) {
parent::__construct($marka);
$this->bataryaKapasitesi = $bataryaKapasitesi;
}
public function bataryaBilgisi() {
return "Batarya Kapasitesi: " . $this->bataryaKapasitesi;
}
}
$benimElektrikliAraba = new ElektrikliAraba("Tesla", "100 kWh");
echo $benimElektrikliAraba->bataryaBilgisi();
?>
Polimorfizm, bir metodun birden fazla biçimde kullanılmasını sağlar. Aynı metod ismi, farklı sınıflarda farklı işlevler gerçekleştirebilir.
Polimorfizm Örneği:
<?php
class Hayvan {
public function sesCikar() {
return "Hayvan sesi";
}
}
class Kedi extends Hayvan {
public function sesCikar() {
return "Miyav";
}
}
class Kopek extends Hayvan {
public function sesCikar() {
return "Hav";
}
}
$hayvanlar = [new Kedi(), new Kopek()];
foreach ($hayvanlar as $hayvan) {
echo $hayvan->sesCikar() . "<br>";
}
?>
Kapsülleme, verilerin ve metodların sınıfın içinde gizlenmesini sağlar. Bu, sınıfın iç yapısının dışarıdan erişilmesini engeller ve sadece gerekli bilgilerin sağlanmasını sağlar.
Kapsülleme Örneği:
<?php
class Kullanici {
private $sifre;
public function setSifre($sifre) {
$this->sifre = $sifre;
}
public function getSifre() {
return $this->sifre;
}
}
$kullanici = new Kullanici();
$kullanici->setSifre("gizli_sifre");
echo $kullanici->getSifre();
?>
Abstraksiyon, yalnızca gerekli özelliklerin ve metodların tanımlandığı ve uygulanabilirliğin alt sınıflara bırakıldığı bir yapıyı ifade eder. Abstrakt sınıflar ve metodlar, bu prensibi uygulamanın yollarıdır.
Abstraksiyon Örneği:
<?php
abstract class Hayvan {
abstract protected function sesCikar();
public function tanimla() {
return "Ben bir hayvanım ve ses çıkarırım.";
}
}
class Kedi extends Hayvan {
public function sesCikar() {
return "Miyav";
}
}
$kedi = new Kedi();
echo $kedi->sesCikar() . "<br>";
echo $kedi->tanimla();
?>
Bu derste öğrendiklerinizi pekiştirmek için aşağıdaki ödevleri yapmanız gerekmektedir:
Bu ödevler, nesne yönelimli programlamanın temel kavramlarını uygulamanıza ve bu kavramları daha iyi anlamanıza yardımcı olacaktır.