Özet - Yapıcı metot
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
-
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
-
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.