Menu
Coddy logo textTech

Özet - Banka Hesabı Yöneticisi

Coddy'nin PHP Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 20 / 91.

challenge icon

Görev

Kolay

Bu bölümde öğrendiğiniz tüm sınıf özelliği kavramlarını bir araya getiren eksiksiz bir banka hesabı yönetim sistemi oluşturalım. Banka genelindeki istatistikleri takip ederken hesap verilerini düzgün bir şekilde kapsülleyen bir BankAccount sınıfı oluşturacaksınız.

Kodunuzu iki dosya halinde düzenleyeceksiniz:

  • BankAccount.php — Bireysel hesapları yöneten ve genel banka istatistiklerini takip eden bir BankAccount sınıfı tanımlayın. Sınıf şunları içermelidir:
    • 100 değerine ayarlanmış bir MINIMUM_BALANCE sabiti
    • Oluşturulduktan sonra değiştirilemeyen, genel erişime açık (public) salt okunur (readonly) bir string $accountId özelliği
    • Hesap sahibinin adı için genel erişime açık (public) bir $holderName özelliği
    • Hesap bakiyesini korumak için özel (private) bir $balance özelliği
    • 0'dan başlayan özel statik (private static) bir $totalAccounts özelliği
    • 0'dan başlayan özel statik (private static) bir $totalDeposits özelliği
    Yapıcı metot (constructor); bir hesap kimliği (account ID), hesap sahibi adı ve başlangıç bakiyesi almalıdır. Tüm örnek (instance) özelliklerini ayarlamalı ve toplam hesap sayısını artırmalıdır. Şu metotları dahil edin:
    • getBalance() — mevcut bakiyeyi döndürür
    • deposit($amount) — bakiyeye ekleme yapar ve toplam mevduat takipçisini günceller, yeni bakiyeyi döndürür
    • withdraw($amount) — yalnızca kalan bakiye minimum bakiye sabitine eşit veya üzerinde kalıyorsa bakiyeden çıkarma yapar, yeni bakiyeyi (veya para çekme işlemine izin verilmiyorsa değişmeyen bakiyeyi) döndürür
    • Statik bir metot getTotalAccounts() — oluşturulan toplam hesap sayısını döndürür
    • Statik bir metot getTotalDeposits() — tüm hesaplarda yapılan tüm mevduatların toplamını döndürür
  • main.php — BankAccount sınıf dosyasını dahil edin. Dört girdi alacaksınız: birinci hesap kimliği, birinci hesap sahibi adı, ikinci hesap kimliği ve ikinci hesap sahibi adı. Her ikisi de 500 başlangıç bakiyesine sahip iki hesap oluşturun. Birinci hesap için: 200 yatırın, ardından 100 çekin. Hesap kimliğini, hesap sahibi adını ve bakiyeyi şu formatta tek bir satıra yazdırın: "[accountId]: [holderName] - $[balance]" İkinci hesap için: 300 yatırın, ardından 800 çekmeye çalışın (bu, minimum bakiye nedeniyle başarısız olmalıdır). Bu hesap için de aynı formatı yazdırın. Son olarak, toplam hesap sayısını ve toplam mevduatı ayrı satırlara yazdırın:
    • "Total Accounts: [count]"
    • "Total Deposits: $[amount]"

Bu meydan okuma; değiştirilemez tanımlayıcılar için salt okunur (readonly) özellikleri, korunan veriler için alıcı (getter) metotlara sahip özel (private) özellikleri, sabit kurallar için sabitleri (constants) ve banka genelindeki istatistikler için statik özellikleri statik metotlarla birleştirir.

Kendin dene

<?php

require_once 'BankAccount.php';

// Girdileri oku
$firstAccountId = trim(fgets(STDIN));
$firstHolderName = trim(fgets(STDIN));
$secondAccountId = trim(fgets(STDIN));
$secondHolderName = trim(fgets(STDIN));

// TODO: 500 başlangıç bakiyesi ile ilk hesabı oluşturun

// TODO: 500 başlangıç bakiyesi ile ikinci hesabı oluşturun

// TODO: İlk hesap: 200 yatırın, ardından 100 çekin

// TODO: İlk hesap bilgilerini yazdırın: "[accountId]: [holderName] - $[balance]"

// TODO: İkinci hesap: 300 yatırın, ardından 800 çekmeye çalışın

// TODO: İkinci hesap bilgilerini yazdırın: "[accountId]: [holderName] - $[balance]"

// TODO: "Total Accounts: [count]" yazdırın

// TODO: "Total Deposits: $[amount]" yazdırın

?>

Nesne Yönelimli Programlama bölümündeki tüm dersler