Sınıflar ve Nesneler
Coddy'nin PHP Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 3 / 91.
Sınıflar ve nesneler farklı amaçlara hizmet eder. Bir sınıf bir taslaktır, nesne ise o taslaktan inşa ettiğiniz şeydir.
İşte bildirilmiş özelliklere sahip bir sınıf örneği:
<?php
class Dog {
public $name;
public $breed;
}public anahtar kelimesi, bu özelliklere sınıf dışından erişilebileceği anlamına gelir. public hakkında daha fazla bilgiyi Özellikler dersinde öğreneceğiz.
Şimdi Dog sınıfından nesneler oluşturun:
$dog1 = new Dog();
$dog2 = new Dog();Nesneler, özellikleri için ayrı değerlere sahip olabilir:
$dog1->name = "Nicky";
$dog1->breed = "Siberian Husky";
$dog2->name = "Teemon";
$dog2->breed = "Shu'ali";-> operatörü, bir nesnenin özelliklerine erişmek için kullanılır.
Her bir nesnenin verisini yazdırın:
echo $dog1->name . " is a " . $dog1->breed . "\n";
echo $dog2->name . " is a " . $dog2->breed . "\n";Çıktı:
Nicky is a Siberian Husky
Teemon is a Shu'aliTemel Fark: Dog sınıfı, tüm köpeklerin paylaştığı yapıyı tanımlarken; $dog1 ve $dog2 nesneleri, benzersiz özellik değerlerine sahip belirli, bireysel köpekleri temsil eder.
Görev
KolayStudent sınıfından iki öğrenci nesnesi oluşturmak ve özelliklerini ayarlamak için kodu tamamlayın.
student.php:Studentsınıfını içerir (kilitli)driver.php: Nesneleri oluşturun ve özelliklerini ayarlayın
Aşağıdaki değerleri ayarlayın:
$student1: name değeri"Alice"ve grade değeri"A"$student2: name değeri"Bob"ve grade değeri"B"
Kopya kağıdı
Bir sınıf (class), nesnelerin yapısını ve davranışını tanımlayan bir taslaktır; bir nesne (object) ise bu sınıftan oluşturulan bir örnektir.
public anahtar kelimesini kullanarak özelliklere sahip bir sınıf tanımlayın:
<?php
class Dog {
public $name;
public $breed;
}new anahtar kelimesini kullanarak bir sınıftan nesneler oluşturun:
$dog1 = new Dog();
$dog2 = new Dog();-> operatörünü kullanarak nesne özelliklerine erişin ve değer atayın:
$dog1->name = "Nicky";
$dog1->breed = "Siberian Husky";
$dog2->name = "Teemon";
$dog2->breed = "Shu'ali";Değerlerini okumak için özelliklere erişin:
echo $dog1->name . " is a " . $dog1->breed;Kendin dene
<?php
require_once 'student.php';
// TODO: İki öğrenci nesnesi oluşturun
// TODO: student1 için özellikleri ayarlayın (name: "Alice", grade: "A")
// TODO: student2 için özellikleri ayarlayın (name: "Bob", grade: "B")
// Öğrenci bilgilerini yazdır
echo $student1->name . " has grade " . $student1->grade . "\n";
echo $student2->name . " has grade " . $student2->grade . "\n";
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Nesne Yönelimli Programlama bölümündeki tüm dersler
1OOP Temelleri
Harici DosyalarOOP'ye GirişSınıflar ve Nesneler$this Anahtar KelimesiMetotlarÖzelliklerYapıcı Metot (__construct)Yıkıcı Metot (__destruct)Özet - Basit Hesap Makinesi4Kalıtım
Temel Kalıtımparent:: Anahtar KelimesiMetot Geçersiz Kılmafinal Anahtar KelimesiSoyut SınıflarÖzet - Çalışan Hiyerarşisi7Kapsülleme
Public, Protected, PrivateErişim Belirleyicilere Derinlemesine BakışGetter ve Setter MetotlarıBilgi GizlemeConstructor Promotion (8.0)Özet - Öğrenci Kayıt Sistemi10İleri Düzey OOP Kavramları
Kompozisyon vs KalıtımDependency InjectionAnonim SınıflarEnum'lar (PHP 8.1)Fiber'lar (PHP 8.1)Nesne Klonlama: Derinlemesine İncelemeGenerator'lar ve Iterator'lar13Tasarım Kalıpları Bölüm 2
Komut KalıbıAdaptör KalıbıDekoratör KalıbıŞablon Metot KalıbıDurum KalıbıKompozit KalıbıRepository Kalıbı2İsim Alanları ve Autoloading
İsim Alanlarına Girişuse Anahtar KelimesiPSR-4 Autoloading StandartıComposer AutoloaderÖzet - Düzenli Proje5Arayüzler ve Sözleşmeler
Arayüzlere GirişArayüzleri UygulamaBirden Fazla Arayüz UygulamaArayüz vs Soyut SınıfArayüzler ile Tip BelirlemeÖzet - Şekil Hesaplayıcı8Sihirli Metotlar
Sihirli Metotlara Giriş__toString & __debugInfo__get, __set, __isset, __unset__call & __callStatic__clone & Nesne Klonlama__serialize & __unserializeÖzet - Özel Koleksiyon3Sınıf Özellikleri
Örnek ve Statik ÖzelliklerSınıflarda SabitlerStatik Metotlar ve ÖzelliklerPrivate ve Protected ÖzelliklerReadonly Özellikler (PHP 8.1)Özet - Banka Hesabı Yöneticisi6Çok Biçimlilik
Metot Geçersiz Kılmaya Yeniden BakışArayüzler ile Çok BiçimlilikType Hinting ve Union TypesLate Static BindingÖzet - Ödeme İşlemcisi9Trait'ler
Trait'lere GirişÇoklu Trait KullanımıTrait Çakışma ÇözümüTrait'lerde Soyut MetotlarTrait'ler ve Kalıtım12Tasarım Kalıpları Bölüm 1
Tasarım Kalıplarına GirişSingleton KalıbıFactory KalıbıObserver KalıbıStrategy Kalıbı15Final Meydan Okumaları
E-Öğrenme PlatformuBankacılık SistemiOyun Karakteri GeliştirmeAraç Kiralama Servisi