CodeBlanks Logo Icon CodeBlanks

Özet - Yapıcı metot

PHP kursu · Orta seviye · Ders 12/115

Yapıcı, parametre ve property başlatmayla banka hesabı sınıfı yazarsın.

Özet - Yapıcı metot

Bu grupta yapıcı (constructor) ve yıkıcı (destructor) metodları öğrendin. Özetle:

  • __construct: new ile örnek oluşturulduğunda otomatik çağrılır. Parametre alabilir ve property'lere ilk değer verir.
  • __destruct: örnek yok edilirken çağrılır; dış kaynakları temizlemek için kullanılır.
  • Sınıf tür bildirimi (Engine $engine) parametreyi yalnızca o sınıfa sınırlandırır ve bağımlılık enjeksiyonunu mümkün kılar.

Şimdi tüm bunları bir araya getiren bir banka hesabı sınıfı yazacaksın.

Uygulama BankAccount sınıfını yaz

BankAccount adında bir sınıf tanımla. public string $owner; ve public float $balance; özelliklerini bildir. Yapıcı __construct(string $owner, float $balance) imzasıyla iki parametre alsın ve $this->owner = $owner; ve $this->balance = $balance; atamalarını yapsın. Sınıfın altında $acc = new BankAccount("Ayşe", 1500.0); ile örnek oluştur ve echo $acc->owner . ": " . $acc->balance . "\n"; satırıyla yazdır.

Örnek çözümü göster
" . $acc->balance . "\n";.
Örnek çözüm:
<?php
// BankAccount sınıfını tanımla
class BankAccount {
    public string $owner;
    public float $balance;

    public function __construct(string $owner, float $balance) {
        $this->owner = $owner;
        $this->balance = $balance;
    }
}

$acc = new BankAccount("Ayşe", 1500.0);
echo $acc->owner . ": " . $acc->balance . "\n";

Uygulama BankAccount'a yıkıcı ekle

Önceki BankAccount sınıfına bir __destruct metodu ekle. Yıkıcı gövdesinde echo "Hesap kapatıldı: " . $this->owner . "\n"; yazsın. Sınıfın altındaki örnek oluşturma satırı aynı kalsın: $acc = new BankAccount("Ayşe", 1500.0); ve echo $acc->owner . ": " . $acc->balance . "\n";. Betik sonunda yıkıcı çalışır.

Örnek çözümü göster
" . $this->owner . "\n"; } ekle. Aşağıdaki örnek oluşturma ve echo satırları aynı kalsın.
Örnek çözüm:
<?php
// BankAccount sınıfını tanımla, yapıcı ve yıkıcı ekle
class BankAccount {
    public string $owner;
    public float $balance;

    public function __construct(string $owner, float $balance) {
        $this->owner = $owner;
        $this->balance = $balance;
    }
    // __destruct metodunu buraya ekle
    public function __destruct() {
        echo "Hesap kapatıldı: " . $this->owner . "\n";
    }
}

$acc = new BankAccount("Ayşe", 1500.0);
echo $acc->owner . ": " . $acc->balance . "\n";

Kendini test et

  1. Kavramları eşle

    __construct
    başlangıçta çalışır
    __destruct
    bitişte çalışır
    Engine $engine
    sınıf türü parametresi
    $this->balance
    örnek özelliği
  2. Hangi ifade doğrudur?

    • __construct return ile değer döndürür
    • Yapıcı parametre almaz
    • __destruct new sırasında çağrılır
    • Sınıf tür bildirimi yanlış türde TypeError fırlatır
    Cevabı göster

    Sınıf tür bildirimi yanlış türde TypeError fırlatır — Doğru. Sınıf tür bildirimi yanlış türde TypeError fırlatır; bu güvenliği artırır.

Orta seviye bölümündeki tüm dersler