🇹🇷
Merhaba!
SQL Düzenleyicisi
  • 🥳Merhaba!
  • 🔃API
    • API'ler
      • Alan Adı Sorgulama WHOIS API
      • İp Adresi Sorgulama API
      • Rastgele Kedi Resmi Gösteren API
      • Lokasyon
        • Ülkeler API
        • Şehirler API
      • T.C. Kimlik Doğrulama API
  • Hosting Solution
    • Cyberpanel
      • 500 Internal Server Hatası (Cyberpanel)
  • 🐻‍❄️LARAVEL
    • Laravel Projesi Oluşturma
    • Anasayfa Düzenleme ve Sayfa Ekleme
  • 🔳ERP TARAFI
    • ERP Nedir ?
    • ERP İş Süreçleri
    • Birimler
      • Üretim
      • Satış
      • Muhasebe
      • Stok Yönetimi
      • Mali Yönetimi
      • Müşteri Hizmetleri (Destek)
      • İnsan Kaynakları (Personel)
      • Proje Yönetimi
    • Kullanılan Terimler
      • Amortisman
  • 💻SQL Tarafı
    • Çalışmalar ve Notlar
      • Tablo Boyutlarını Öğrenme
      • Veritabanı Arası Sorgulama
      • Tabloların Satır Sayısını Bulma
      • Tablodaki Triggerları Açma&Kapatma
      • Tablo Bağlantısı (Tablo Bağlama)
      • Tabloların Satır Sayısını Bulma
    • Konular
      • Sorgulamalar
        • SELECT
        • FROM
        • WHERE
        • LIKE
        • JOINLER
          • INNER JOIN
          • FULL OUTER JOIN
          • RIGHT JOIN
          • LEFT JOIN
        • GROUP BY
        • HAVING
        • ORDER BY
        • LIMIT
        • COUNT
        • SUM
        • AVG
        • MIN
        • MAX
        • CASE
        • DISTINCT
        • SUBQUERY
        • SUBSTRING
        • TRUNCATE
      • String Fonksiyonlar
        • LEN
        • STRING_SPLIT
        • CHARINDEX
        • SUBSTRING
        • REPLACE
        • LOWER/UPPER
        • TRIM
        • LEFT/RIGHT
        • ASCII/CHAR
        • CONCAT
      • Zaman Fonksiyonları
        • DAY, MONTH, YEAR
        • DATEFROMPARTS
        • ISDATE
        • DATEADD
        • DATENAME
        • DATEPART
        • DATETIME
        • DATEDIFF
      • Matematiksel Fonksiyonlar
        • ROUND
        • FLOOR
        • DEGRESS
        • ACOS
        • ASIN
        • ATAN
        • ATN2
        • RAND
        • RAD
        • ABS/SIGN
        • FLOOR/CEILING
      • Döngüler
        • FOR
        • WHILE
      • Prosedür
        • Prosedür Nasıl Yazılır
      • Trigger
        • Triger Nasıl Yazılır
      • Index
        • Index Nasıl Yazılır
      • Cursor
        • Cursor Nasıl Yazılır
      • Fonksiyon Konuları
        • User Defined Functions
        • Aggregate Functions
      • Veritipleri ve Boyutları
      • İlişkisel Veritabanı
    • Dosyalar & Kaynaklar
      • SQL Veri Tipleri
      • T-SQL Join Tipleri
      • SQL Cheat Sheet
    • SQL Hataları ve Çözümleri
      • String or binary data would be truncated
      • Subquery returned more than 1 value.
      • Conversion failed when converting from a character string to uniqueidentifier
      • The multi-part identifier could not be bound
      • Arithmetic overflow error converting numeric to data type numeric
  • 💯ANADIL
    • Anadil Nedir ?
    • Çalışmalar ve Notlar
      • Cff
        • Cff İle Adını Alıp Kodunu Yazdırma
      • Şube Kodu İşaretlendiğinde ComboBox'ın Kapatılması.
      • Parametre İşaretlendiğinde TabSheet'te ki Grid'in kapatılması.
      • İf
        • İf İle Boş Kontrol
        • İf İle Uzunluk Kontrolü
      • Grid
        • Grid PushButton Kullanımı
        • Grid Oluşturma
      • Formdaki Gride Koşul Ekleme(FTC)
      • Yetki Servisi Çağırma
      • ComboList Doldurma
    • Kütüphane
      • RS32
        • Fonksiyonlar
          • BuildInsertStm
          • BuildDeleteStm
          • BuildSelectStm
          • BuildUpdateStm
          • PrepareStmDirect
          • ExecuteStmDirect
        • Metotlar
          • AddOrderBy
          • AddGroupBy
          • AppendToStm
      • CFF
        • Fonksiyonlar
        • Metotlar
      • Kontrol Nesneleri
        • ListBox ve ComboBox
          • AddToList
          • SelectTextInList
      • Diğer
        • IsNull
  • 🔬.NET TARAFI
    • .NET Nedir ?
    • Konular
      • Değişkenler
        • Boolean (Bool)
        • Byte
        • Char
        • Integer (INT)
        • Long
        • Single
        • Double
        • Decimal
        • String
        • Object
  • 😎PHP TARAFI
    • PHP Nedir ?
    • Konular
      • Temel Söz Dizimi
        • Değişkenler
        • Operatörler
        • Koşullar
        • Fonksiyonlar
        • Döngüler
        • Diziler
        • String İşlemleri
      • Form İşlemleri
        • Form Verilerini Alma
        • Form Verilerini Kontrol Etme
        • Form Verilerini İşleme
        • Form Alanlarına Ön Tanımlı Değerler Atama
        • Form Güvenliği
      • Veritabanı İşlemleri
        • Veritabanına Bağlanma
        • Veri Ekleme
        • Veri Sorgulama
        • Veri Güncelleme
        • Veri Silme
        • Veri Okuma
        • Transaksiyonlar
        • Veritabanı Bağlantılarını Yönetme
      • Sınıflar ve Nesneler
        • OOP İlkeleri
        • Autoloading
        • Ad alanları (Namespaces)
        • Statik Yöntemler ve Özellikler (Static Methods and Properties)
        • Soyut Sınıflar ve Yöntemler (Abstract Classes and Methods)
        • Arayüzler (Interfaces)
        • Miras (Inheritance)
        • Sınıflar ve Nesnelerin Temelleri
        • Kurucu Yöntemler
      • Güvenlik
        • SQL Enjeksiyonu
        • XSS (Cross-Site Scripting)
        • DoS (Denial of Service) Saldırıları
        • CSRF (Cross-Site Request Forgery)
        • Güvenli Parola Depolama
        • Dosya Yükleme
      • Dosya İşlemleri
      • API Entegrasyonları
        • API Nedir ?
        • RESTful API Nedir?
        • API İstekleri
        • API Yanıtları
        • API Entegrasyon Örnekleri
        • API Anahtarları
      • Framework
        • MVC Tasarım Deseni
        • Yönlendirme
        • Şablonlar
        • Veritabanı Erişimi
        • Güvenlik
        • API Entegrasyonları
        • Oturum Yönetimi
        • Test
        • Performans
        • Paket Yönetimi
  • 🎛️FRAMEWORK TARAFI
    • Framework Nedir?
    • Konular
      • Framework Türleri
      • Framework Avantajları ve Dezavantajları
      • Framework Kullanımı ve Örnekleri
      • Framework vs Kütüphane
      • Framework vs Platform
      • Framework vs API
      • Framework ve Tasarım Kalıpları
      • Framework ve MVC Mimari
      • Framework ve ORM
      • Framework ve Web Geliştirme
      • Framework ve Mobil Geliştirme
      • Framework ve Oyun Geliştirme
      • Framework ve Veri Bilimi
      • Framework ve Yapay Zeka
      • Framework Geliştirme Süreci
      • Framework Test Etme ve Hata Ayıklama
Powered by GitBook
On this page

Was this helpful?

  1. PHP TARAFI
  2. Konular
  3. Sınıflar ve Nesneler

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:

  1. 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.

  2. Inheritance (Kalıtım): Sınıfların birbirinden miras alması, kod tekrarını önler ve programlamayı daha modüler hale getirir.

  3. 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:

  1. 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ş
  1. 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();
  1. 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 2 years ago

Was this helpful?

😎