PHP OOP

Nursen

Paylaşımcı Üye
Katılım
24 Nis 2020
Mesajlar
1,046
Beğeniler
5
PHP içerisinde yer alan OOP veya Nesne Yönelimli Programlamada kullanılan anahtar kelimeler örneklerle yer alıyor.

OOP nedir?

OOP (Object Oriented Programming) veya NYP (Nesne Yönelimli Programlama) bir yazılım geliştirme paradigmasıdır.

Neden OOP?

Yazılımlar geliştikçe karmaşıklaşır ve boyutları artar.

Karmaşıklık ve boyutun artmasıyla birlikte kodun bakımı, karmaşıklık ve boyuta göre daha fazla artar.

OOP geliştirilen yazılımın karmaşıklık ve bakım maliyetini azaltmak için kullanılır.

OOP bakım maliyetini azaltırken, kodun tekrar kullanılabilirliğini, anlaşılabilirliğini de arttırmaktadır.

Yazılım geliştirme yöntemi OOP destekleyen bir yazılım dili tarafından öğrenildiğinde diğer OOP destekli dilleri öğrenmeyi ve geliştirme yapmayı kolaylaşacaktır.

OOP tekniği, uzun süredir C++, JAVA ve C# gibi programlama dilleri tarafından başarıyla kullanılmaktadır.

Yazılım geliştirme sadece kod yazmaktan ibaret değildir.

Yazılım belirli bir düzene ve geliştirilebilirliğe sahip olmalıdır.

OOP tekniği içerisinde bulunan soyutlama, arayüz ve kalıtım gibi özelliklerle bu kolay bir şekilde sağlanır.

PHP OOP desteği sayesinde UML, MVC, HMVC, MVVM, Tasarım desenleri gibi OOP ile geliştirme tekniklerini uygulamayı sağlar.

Büyük ölçekli yazılımlar ekip halinde yapılır.

Yazılım içerisinde belirli bir düzen olmadığından kodlar diğer ekip üyeleri tarafından anlaşılmayacaktır.

Daha kötüsü kodu yazan kişi ekipten ayrıldığında kodu anlamak için ek süreye ihtiyaç duyulacaktır.

OOP ile geliştirme yapıldığında kodun anlaşılabilirliği artacağından bu gibi sorunlar ortadan kalkacaktır.

OOP öğrenmenin diğer avantajı PHP ile geliştirilen Zend, Yii, CodeIgniter, Laravel vb. yapıların OOP ile geliştirilmiş olmasıdır.

OOP tekniği öğrenildiğinde bu yapıların öğrenilmesi kolaylaşacaktır.

OOP class

OOP ile yazılım geliştirmede kullanılan nesnelere ait özellik ve işlevlerin tanımlandığı yapıya class denir.

Örnek olarak; kediler ve köpekler bir nesnedir.

Bu nesnelerin belirli bir özelliği (rengi, göz rengi vb.) ve işlevi (miyavlama, havlama, koşma, yakalama vb.) vardır.

Bu özellik ve işlevler class yapısı içerisinde tanımlanarak nesnelerin oluşturulması sağlanır.

class yapısı

PHP class yapısı temel olarak özellik ve işlevlerden meydana gelir.

Özellik öznitelik veya alan olarak, işlev ise metot veya yöntem olarak isimlendirilir.

class örnekleri

PHP class konusunun daha iyi anlaşılabilmesi için aşağıdaki basit class örneklerini incelemek faydalı olacaktır.

Örnekte insan nesnesine ait bir sınıf tanımlanmıştır.
Kopyala<?php

class Kisi {

public $adi;
private $soyadi;

public function __construct($gelenAdi, $gelenSoyadi) {
$this->adi = $gelenAdi;
$this->soyadi = $gelenSoyadi;
}

function adiSoyadi() {
return $this->adi . " " . $this->soyadi;
}

}

?>

Örnekte kitap nesnesine ait bir sınıf tanımlanmıştır.
Kopyala<?php

class Kitap {

public $kitapAdi;
private $kitapSayfaSayisi;

public function __construct($gelenKitapAdi, $gelenKitapSayfaSayisi) {
$this->kitapAdi = $gelenKitapAdi;
$this->kitapSayfaSayisi = $gelenKitapSayfaSayisi;
}

function sayfaSayisi() {
return $this->kitapSayfaSayisi;
}

}

?>


NOT: Örnekler class yapısı hakkında bilgi edinmek için basit bir şekilde verilmiştir.

class kullanımı

Tanımlanmış class yapısını kullanmak için bir örneğinin çıkarılması gerekir.

Örnekleme new anahtar kelimesi ile yapılır.

Örnekleme sonrasında bir nesne ortaya çıkar.
Kopyala<?php

$ben = new Kisi("Yusuf", "SEZER");

?>

Örnekleme sonrasında sınıf içerisindeki özellik ve işlevlere -> ile erişilir.

İşlevleri/metotları çağırma
Kopyala<?php

$ben = new Kisi("Yusuf", "SEZER");

echo $ben->adiSoyadi();

?>

Özelliklere/niteliklere erişme
Kopyala<?php

$ben = new Kisi("Yusuf", "SEZER");

echo $ben->adi;

?>

PHP class yapısının daha iyi anlaşılması için çeşitli örnekler yapıp denemek faydalı olacaktır.

OOP özellikler

Nesnelerin tanımlandığı sınıf içindeki değişkenlere özellik denir.

Nesneler çeşitli özelliklere sahip olabilir.

OOP ile yazılım geliştirmede öğrenci nesnesine ait bir sınıf tanımlandığında öğrenciye ait sıra numarası, adı, soyadı ve bölüm gibi bilgiler bir öğrencinin özelliği olarak ifade edilir.

Benzer şekilde kedi nesnesine ait bir sınıf tanımlandığında kedinin rengi, boyu, göz rengi vb. bilgiler nesnenin özellikleri olarak tanımlanır.

Örnekte Ogrenci sınıfı ve özellikleri yer almaktadır.
Kopyala<?php

class Ogrenci {

private $ogrenciID = 0;
public $ogrenciAdi = "";
public $ogrenciSoyadi = "";
protected $ogrenciBolum = "";

}

?>

Örnekte Kedi sınıfı ve özellikleri yer almaktadır.
Kopyala<?php

class Kedi {

public $kediRengi = "";
private $kediBoyu = 0.0;
protected $kediGozRengi = "";

}

?>

Sınıf içerisindeki özelliklere metotlardan $this->ozellikAdi ile erişilir.

Özellikler bir OOP kuralı olan public, protected ve private değerleri alan erişim belirleyicilere sahiptir.

Herhangi bir erişim belirleyici belirtilmediğinde özellik varsayılan olarak public erişim belirleyicisine sahip olur.

OOP metotlar

Nesnelerin tanımlandığı sınıf içindeki fonksiyonlara metot denir.

Nesneler çeşitli metotlara sahip olabilir.

OOP ile yazılım geliştirmede öğrenci nesnesine ait bir sınıf tanımlandığında öğrencinin ders eklemesi, çalışması, öğrenci bilgilerinin fonksiyon yardımıyla döndürülmesi metot olarak ifade edilir.

Benzer şekilde kedi nesnesine ait bir sınıf tanımlandığında kedinin miyavlaması, oyun oynaması, nesnenin metotları olarak tanımlanır.

Örnekte Ogrenci sınıfına özellikler ve metotlar yer almaktadır.
Kopyala<?php

class Ogrenci {

private $ogrenciID = 0;
public $ogrenciAdi = "";
public $ogrenciSoyadi = "";
protected $ogrenciBolum = "";
private $dersler = array();
public $durum = "";

public function __construct($oAdi, $oSoyadi, $oBolum) {
$this->ogrenciAdi = $oAdi;
$this->ogrenciSoyadi = $oSoyadi;
$this->ogrenciBolum = $oBolum;
}

protected function dersEkle($dersAdi) {
$this->dersler[] = $dersAdi;
$this->dersCalis($dersAdi);
}

private function dersCalis($dersAdi) {
$this->durum = $dersAdi . " çalışıyor";
}

public function ogrenciBilgileri() {
return $this->ogrenciAdi . " - " . $this->ogrenciSoyadi . " - " . $this->ogrenciBolum;
}

}

$ben = new Ogrenci("Yusuf", "SEZER", "Bilgisayar Mühendisliği");

echo $ben->ogrenciBilgileri();

?>

Örnekte Kedi sınıfı ve özellikleri yer almaktadır.
Kopyala<?php

class Kedi {

public $kediRengi = "";
private $kediBoyu = 0.0;
protected $kediGozRengi = "";

public function miyavla() {
return "Miyav!!!";
}

public function oyunOyna($oyunAdi) {
return "Kedi " . $oyunAdi . " oynuyor";
}

}

$pamuk = new Kedi;
echo $pamuk->miyavla();
echo "<br />";
echo $pamuk->oyunOyna("Top oyunu");

?>

Sınıf içerisindeki metotlara $this->metotAdi ile erişilir.

Metotlar bir OOP kuralı olan public, protected ve private değerleri alan erişim belirleyicilere sahiptir.

Herhangi bir erişim belirleyici belirtilmediğinde metot varsayılan olarak public erişim belirleyicisine sahip olur.

Metotların değer döndürmesi, parametre alması gibi özellikler php fonksiyonlarıyla aynıdır.

OOP this

PHP ile bir nesne oluşturulduğunda işletim sistemi nesneye ait bilgileri belleğin bir bölümüne yazar.

Bu bilgilere dışardan nesnenin tanımlandığı değişken ile erişilir.

Kedi sınıfındaki metotlara
Kopyala$tekir = new Kedi();

tanımı yapıldığında $tekir nesnenin bellek adresini/referansını tutar ve nesneye bu referans ile erişilir.

Nesnelerin tanımlandığı sınıf içinde, nesne oluşturulmadığından bellek adresi bilinmez, PHP nesne oluşturulurken bellek adresini $this anahtar kelimesine atar.

Böylece nesne içindeki özellik ve metotlara $this anahtar kelimesi ile ulaşılır.
 

Şu anda bu konu'yu okuyan kullanıcılar

Benzer konular Forum Tarih
seocucaylak SEO 0 238
B Ücretsiz Scriptler 0 338
B Ücretsiz Scriptler 0 337
B Ücretsiz Scriptler 0 413
B Ücretsiz Scriptler 1 438
B Ücretsiz Scriptler 0 554
B Ücretsiz Scriptler 0 415
B Ücretsiz Scriptler 0 432
oxcakmak Script Satış 1 521
macktry PHP 0 1K
mehmetozdemir1 Link Borsası 9 2K
Y PHP Dersleri 0 722
Y PHP Dersleri 0 705
Y PHP Dersleri 0 634
Y PHP Dersleri 0 661

Benzer konular

Üst