Rangkuman: Pengelola Rekening Bank
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan GDScript di Coddy. Pelajaran 14 dari 65.
Tantangan
SedangTulis class BankAccount di bank_account.gd. Class ini menyatukan semua hal dari bab ini.
- Variabel
intstaticinterest_percentyang dimulai dari2, digunakan bersama oleh semua akun - Dua property privat:
_owner_name(sebuahString) dan_balance(sebuahintyang dimulai dari0) - Property hanya-baca
owner_nameyang getter-nya mengembalikan_owner_name - Property
balanceyang getter-nya mengembalikan_balancedan setter-nya mencetakBalance cannot be negativejika nilainya negatif, dan jika tidak, menyimpan nilai tersebut di_balance - Konstruktor
_init(account_owner, start_balance)menyimpan nama pemilik dan menetapkanstart_balancekebalance, sehingga setter memeriksanya
Berikut method-nya:
deposit(amount): mencetakDeposit amount must be positivedan mengembalikanfalsejikaamountbernilai0atau kurang; jika tidak, menambahkannya dan mengembalikantruewithdraw(amount): mencetakWithdrawal amount must be positivedan mengembalikanfalsejikaamountbernilai0atau kurang, mencetakInsufficient fundsdan mengembalikanfalsejika nilainya lebih besar daripada saldo, jika tidak, menguranginya dan mengembalikantrueapply_interest(): menambahkan_balance * interest_percent / 100(dalam dolar utuh) ke saldo dan mengembalikan bunga tersebutdisplay_info(): mencetak tiga baris,Account Owner: NAME,Balance: $BALANCEdanInterest Rate: PERCENT%
Kode yang disediakan membaca owner start_balance, jumlah perintah berikutnya, dan perintah deposit N, withdraw N, set N (menetapkan balance), interest, rate N (menetapkan BankAccount.interest_percent) dan info. Kode ini mencetak satu baris untuk setiap deposit, penarikan, dan pembayaran bunga yang berhasil, serta saldo pemilik di akhir. Untuk Coddy 1000 dan perintah deposit 500, withdraw 200, interest, info, set 5000 dan withdraw 10000, kode ini mencetak:
Deposited $500
Withdrew $200
Interest earned: $26
Account Owner: Coddy
Balance: $1326
Interest Rate: 2%
Insufficient funds
Coddy has $5000Kodemu ditulis di bank_account.gd. main.gd berisi kode input/output yang disediakan dan tidak dapat diedit.
Coba sendiri
extends Node
func _ready():
# Kode input/output yang disediakan: biarkan apa adanya
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])
Semua pelajaran di Pemrograman Berorientasi Objek
1Dasar-Dasar OOP
File EksternalPengantar OOPclass dan objectKata Kunci selfmethodpropertyKonstruktor (_init)Ringkasan: Kalkulator Sederhana4Polimorfisme
Method Overriding Sekali LagiDuck TypingKelas Abstrak dan MethodDesain InterfaceRingkasan: Kalkulator Bentuk7Sinyal
Apa itu Sinyal?Mendeklarasikan dan MemancarkanMenghubungkan ke SinyalSinyal dengan ArgumenRangkuman, Sistem Kesehatan10Pola Desain Bagian 2
Pola CommandPola AdapterPola DecoratorPola Template MethodPola StatePola Composite2Property class
Variabel instance vs. variabel statisFungsi statisSetter propertyGetter propertyPrivat berdasarkan konvensiRangkuman: Pengelola Rekening Bank5Enkapsulasi
Member Publik dan PrivatValidasi dengan SetterPenyembunyian InformasiProperty Hanya-BacaRingkasan: Sistem Catatan Siswa8Konsep OOP Lanjutan
Komposisi vs PewarisanInner ClassNode sebagai KomponenRefCounted vs NodeEnum dalam Class11Proyek: Manajemen Perpustakaan
Gambaran Umum Proyekclass Buku dan PenggunaLatihan sendiri: Compiler GDScript online