PHP Nesne Yönelimli Programlama (OOP)

PHP, Nesne Yönelimli Programlama (OOP) desteği sunarak kodların daha düzenli, esnek ve yeniden kullanılabilir olmasını sağlar. OOP sayesinde sınıflar (class), nesneler (object), kalıtım (inheritance), arayüzler (interface) gibi kavramları kullanarak daha modüler bir yapı oluşturabiliriz.


1. OOP Nedir?

Nesne Yönelimli Programlama (OOP), kodları nesneler ve sınıflar etrafında organize eden bir programlama yaklaşımıdır. OOP sayesinde:

✅ Kod tekrarını azaltabiliriz.
✅ Projeler daha düzenli ve yönetilebilir olur.
✅ Büyük projelerde daha esnek ve ölçeklenebilir kodlar yazabiliriz.


2. Sınıflar (Class) ve Nesneler (Object)

OOP’nin temelinde sınıflar (class) ve nesneler (object) bulunur.

🔹 Sınıf (Class): Bir nesnenin şablonudur. İçinde değişkenler (özellikler) ve fonksiyonlar (metotlar) bulunur.
🔹 Nesne (Object): Sınıftan türetilmiş, onun özelliklerini ve metotlarını kullanabilen somut bir varlıktır.

Örnek: Basit Bir Sınıf ve Nesne Oluşturma

<?php
class Araba {
    public $marka;
    public $model;
    public $yil;

    public function bilgileriGoster() {
        return "Araba: $this->marka, Model: $this->model, Yıl: $this->yil";
    }
}

// Nesne oluşturma
$benimArabam = new Araba();
$benimArabam->marka = "Toyota";
$benimArabam->model = "Corolla";
$benimArabam->yil = 2020;

echo $benimArabam->bilgileriGoster();
?>

💡 Sonuç:

Araba: Toyota, Model: Corolla, Yıl: 2020

Burada Araba sınıfını oluşturduk ve bilgileriGoster() metodu ile bilgileri ekrana yazdırdık.


3. Kurucu Metot (Constructor) Kullanımı

Kurucu metodlar, bir sınıftan nesne türetildiğinde otomatik olarak çalışan özel metotlardır.
PHP’de kurucu metodlar __construct() olarak tanımlanır.

Örnek: Constructor Kullanımı

<?php
class Araba {
    public $marka;
    public $model;
    public $yil;

    public function __construct($marka, $model, $yil) {
        $this->marka = $marka;
        $this->model = $model;
        $this->yil = $yil;
    }

    public function bilgileriGoster() {
        return "Araba: $this->marka, Model: $this->model, Yıl: $this->yil";
    }
}

// Nesne oluştururken parametre geçiyoruz
$benimArabam = new Araba("BMW", "5 Serisi", 2021);
echo $benimArabam->bilgileriGoster();
?>

💡 Sonuç:

Araba: BMW, Model: 5 Serisi, Yıl: 2021


4. Erişim Belirleyiciler (public, private, protected)

PHP’de erişim belirleyiciler (access modifiers), sınıf içindeki özelliklerin ve metodların erişim seviyelerini belirler.

🔹 public → Her yerden erişilebilir.
🔹 privateSadece sınıfın içinden erişilebilir.
🔹 protectedSınıf içinden ve miras alınan (kalıtım yapılan) sınıflardan erişilebilir.

Örnek: private Kullanımı

<?php
class Kullanici {
    private $sifre; // Sadece sınıf içinden erişilebilir

    public function setSifre($sifre) {
        $this->sifre = md5($sifre); // Şifreyi güvenli hale getir
    }

    public function getSifre() {
        return $this->sifre;
    }
}

$kullanici = new Kullanici();
$kullanici->setSifre("12345");
echo $kullanici->getSifre();
?>

Burada $sifre değişkeni private olduğu için dışarıdan doğrudan erişilemez.


5. Kalıtım (Inheritance) Kullanımı

Kalıtım, bir sınıfın başka bir sınıftan özellikleri ve metodları miras almasını sağlar.

extends anahtar kelimesi ile bir sınıf başka bir sınıftan türetilebilir.

Örnek: Kalıtım Kullanımı

<?php
class Hayvan {
    public $isim;

    public function __construct($isim) {
        $this->isim = $isim;
    }

    public function sesCikar() {
        return "Bir ses çıkardı!";
    }
}

// Köpek sınıfı, Hayvan sınıfından miras alıyor
class Kopek extends Hayvan {
    public function sesCikar() {
        return "$this->isim havladı!";
    }
}

$kopegim = new Kopek("Karabaş");
echo $kopegim->sesCikar();
?>

💡 Sonuç:

Karabaş havladı!

  • Kopek sınıfı Hayvan sınıfından miras aldı.
  • sesCikar() metodunu override (ezme) işlemiyle değiştirdi.

6. Arayüzler (Interfaces) Kullanımı

PHP’de interface (arayüz), sınıfların hangi metotları içermesi gerektiğini belirler.

🔹 Bir sınıf birden fazla interface kullanabilir.
🔹 Interface içinde metotların sadece imzaları bulunur, gövdesi olmaz.

Örnek: Interface Kullanımı

<?php
interface Ucabilir {
    public function uc();
}

class Kus implements Ucabilir {
    public function uc() {
        return "Kuş uçuyor!";
    }
}

$guvercin = new Kus();
echo $guvercin->uc();
?>

💡 Sonuç:

Kuş uçuyor!

Burada Ucabilir arayüzünü oluşturarak, Kus sınıfına uçma özelliği kazandırdık.


7. PHP OOP ile Özet

KavramAçıklama
Sınıf (Class)Bir nesnenin şablonudur.
Nesne (Object)Sınıftan türetilmiş bir örnektir.
Kurucu Metot (Constructor)Nesne oluşturulurken otomatik çalışan metottur.
Erişim Belirleyicilerpublic, private, protected ile erişim sınırlandırılır.
Kalıtım (Inheritance)Bir sınıfın başka bir sınıftan miras almasıdır.
Interface (Arayüz)Bir sınıfın belirli metotları uygulamasını zorunlu kılar.

Bu bilgilerle PHP’de Nesne Yönelimli Programlama kullanarak daha modüler ve esnek projeler geliştirebilirsiniz! 🚀

guest
0 Yorum
Eskiler
En Yeniler Beğenilenler
Inline Feedbacks
View all comments
0
YORUM YAPx