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
Kolayİki öğrenci nesnesi oluşturmak ve özelliklerini ayarlamak için kodu tamamlayın; nesneleri Student sınıfından oluşturun.
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: adı"Alice", notu"A"$student2: adı"Bob", notu"B"
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 SözcüğüMetotlarÖzelliklerYapıcı (__construct)Yıkıcı (__destruct)Tekrar - Basit Hesap Makinesi4Kalıtım
Temel Kalıtımparent:: Anahtar SözcüğüMetot Geçersiz Kılmafinal Anahtar SözcüğüSoyut SınıflarTekrar - Çalışan Hiyerarşisi7Kapsülleme
Public, Protected, PrivateErişim Belirleyicileri DerinlemesineGetter ve Setter'larBilgi GizlemeYapıcı Özellik Terfisi (8.0)Tekrar - Öğrenci Kayıt Sistemi10İleri Düzey OOP Kavramları
Composition ve KalıtımBağımlılık EnjeksiyonuAnonim SınıflarEnum'lar (PHP 8.1)Fiber'lar (PHP 8.1)Nesne Klonlamaya Derinlemesine BakışÜreteçler ve Yineleyiciler13Tasarı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ıBileşik KalıpDepo Kalıbı2Namespace’ler ve Autoloading
Namespace’lere Girişuse Anahtar SözcüğüPSR-4 Autoloading StandardıComposer AutoloaderTekrar - Düzenli Proje5Arayüzler ve Sözleşmeler
Arayüzlere GirişArayüzleri UygulamaBirden Çok Arayüz UygulamaArayüz ve Soyut Sınıf KarşılaştırmasıArayüzlerle Tür İpuçlarıTekrar - Şekil Hesaplayıcı8Sihirli Metotlar
Sihirli Metotlara Giriş__toString ve __debugInfo__get, __set, __isset, __unset__call ve __callStatic__clone ve Nesne Klonlama__serialize ve __unserializeTekrar - Özel Koleksiyon3Sınıf Özellikleri
Örnek ve Statik ÖzelliklerSınıflarda SabitlerStatik Metotlar ve ÖzelliklerPrivate ve Protected ÖzelliklerSalt Okunur Özellikler (PHP 8.1)Tekrar - Banka Hesabı Yöneticisi6Çok Biçimlilik
Metot Geçersiz Kılmayı Yeniden Ele AlmaArayüzler Yoluyla Çok BiçimlilikTür İpuçları ve Birleşim TürleriGeç Bağlanan Statik ÇağrılarÖzet - Ödeme İşlemcisi9Trait'ler
Trait'lere GirişBirden Çok Trait KullanımıTrait Çakışmalarını ÇözümlemeTrait'lerde Soyut MetotlarTrait'ler ve Kalıtım Karşılaştırması12Tasarım Desenleri 1. Bölüm
Tasarım Desenlerine GirişSingleton DeseniFactory DeseniObserver DeseniStrategy DeseniKendi başına pratik yap: Online PHP derleyicisi