Tekrar - Banka Hesabı Yöneticisi
Coddy'nin GDScript Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 14 / 65.
Görev
Ortabank_account.gd dosyasında BankAccount sınıfını yaz. Bu sınıf, bu bölümdeki her şeyi bir araya getiriyor.
- Tüm hesaplar arasında paylaşılan ve başlangıç değeri
2olan statik birintdeğişkeni:interest_percent - İki özel özellik:
_owner_name(birString) ve başlangıç değeri0olan birintolan_balance - Getter'ı
_owner_namedeğerini döndüren salt okunur bir özellik:owner_name - Getter'ı
_balancedeğerini döndüren ve negatif bir değer içinBalance cannot be negativeyazdıran, aksi takdirde değeri_balanceiçinde saklayan bir özellik:balance _init(account_owner, start_balance)kurucusu, hesap sahibini saklar vestart_balancedeğerinibalance'a atar; böylece setter bu değeri denetler
Bir de şu metotlar:
deposit(amount):amountdeğeri0veya daha küçük olduğundaDeposit amount must be positiveyazdırır vefalsedöndürür; aksi takdirde tutarı ekler vetruedöndürürwithdraw(amount):amountdeğeri0veya daha küçük olduğundaWithdrawal amount must be positiveyazdırır vefalsedöndürür; bakiyeden büyük olduğundaInsufficient fundsyazdırır vefalsedöndürür; aksi takdirde tutarı çıkarır vetruedöndürürapply_interest(): bakiyeye_balance * interest_percent / 100değerini (tam dolar olarak) ekler ve bu faizi döndürürdisplay_info(): üç satır yazdırır:Account Owner: NAME,Balance: $BALANCEveInterest Rate: PERCENT%
Sağlanan kod; owner start_balance değerlerini, ardından kaç komut geleceğini ve deposit N, withdraw N, set N (balance değerini atar), interest, rate N (BankAccount.interest_percent değerini ayarlar) ve info komutlarını okur. Başarılı her para yatırma, para çekme ve faiz ödemesi için bir satır, en sonda da hesap sahibinin bakiyesini yazdırır. Coddy 1000 ve deposit 500, withdraw 200, interest, info, set 5000 ve withdraw 10000 komutları için şu çıktıyı verir:
Deposited $500
Withdrew $200
Interest earned: $26
Account Owner: Coddy
Balance: $1326
Interest Rate: 2%
Insufficient funds
Coddy has $5000Kodunu bank_account.gd dosyasına yaz. main.gd dosyası, sağlanan girdi/çıktı kodunu içerir ve düzenlenemez.
Kendin dene
extends Node
func _ready():
# Sağlanan giriş/çıkış kodu: olduğu gibi bırakın
var first := OS.read_string_from_stdin().split(" ")
var account := BankAccount.new(first[0], int(first[1]))
var count := int(OS.read_string_from_stdin())
for i in count:
var parts := OS.read_string_from_stdin().split(" ")
match parts[0]:
"deposit":
if account.deposit(int(parts[1])):
print("Deposited $%s" % parts[1])
"withdraw":
if account.withdraw(int(parts[1])):
print("Withdrew $%s" % parts[1])
"set":
account.balance = int(parts[1])
"interest":
print("Interest earned: $%d" % account.apply_interest())
"rate":
BankAccount.interest_percent = int(parts[1])
"info":
account.display_info()
print("%s has $%d" % [account.owner_name, account.balance])
Nesne Yönelimli Programlama bölümündeki tüm dersler
1Nesne Yönelimli Programlamanın Temelleri
Harici DosyalarNesne Yönelimli Programlamaya GirişSınıflar ve Nesnelerself Anahtar KelimesiMetotlarÖzelliklerKurucu (_init)Tekrar - Basit Hesap Makinesi4Çok Biçimlilik
Metot Ezme Konusuna Yeniden BakışÖrdek TiplemesiSoyut Sınıflar ve MetotlarArayüz TasarımıÖzet - Şekil Hesaplayıcı7Sinyaller
Sinyal Nedir?Tanımlama ve Sinyal GöndermeSinyallere BağlanmaArgümanlı SinyallerTekrar - Sağlık Sistemi10Tasarım Kalıpları 2. Bölüm
Komut KalıbıAdaptör KalıbıDekoratör KalıbıŞablon Metot KalıbıDurum KalıbıBileşik Kalıp2Sınıf Özellikleri
Örnek ve Statik DeğişkenlerStatik FonksiyonlarÖzellik AyarlayıcılarıÖzellik AlıcılarıGeleneksel Olarak ÖzelTekrar - Banka Hesabı Yöneticisi5Kapsülleme
Public ve Private ÜyelerSetter'larla DoğrulamaBilgi GizlemeSalt Okunur ÖzelliklerTekrar - Öğrenci Kayıt SistemiKendi başına pratik yap: Online GDScript derleyicisi