Hesap Bilgileri
Coddy'nin Lua Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 23 / 70.
Görev
KolayDijital Bankanız daha profesyonel hale geliyor! Şimdi hesaplarınızın yazdırıldığında kendilerini güzel bir şekilde göstermesini sağlayalım. Bir __tostring metametodu ekleyerek, bir hesabın tam olarak nasıl görüneceğini kontrol edebilir; hem hesap kimliğini (ID) hem de mevcut bakiyeyi temiz ve okunabilir bir formatta gösterebilirsiniz.
Mevcut dosyalarınız üzerinden geliştirmeye devam edeceksiniz:
Account.lua: Account sınıfınızı iki yeni özellikle genişletin::new()kurucusunu (constructor), her hesabı tanımlayan biridparametresi alacak şekilde değiştirin- Hesabın bilgilerini gösteren formatlanmış bir dize döndüren bir
__tostringmetametodu ekleyin
main.lua: Kimlikleri (ID) olan hesaplar oluşturun ve yazdırıldıklarında kendilerini nasıl gösterdiklerini sergileyin.
__tostring metodu tam olarak şu formatta bir dize döndürmelidir:
Account [ID]: Balance = BALANCEBurada ID hesabın kimliği, BALANCE ise mevcut bakiyesidir.
Dört girdi alacaksınız:
- Birinci hesabın ID'si
- Birinci hesabın yatırılacak tutarı
- İkinci hesabın ID'si
- İkinci hesabın yatırılacak tutarı
Ana dosyanızda, verilen ID'lerle iki hesap oluşturun, her birine ilgili tutarları yatırın ve ardından her hesabı doğrudan print() kullanarak yazdırın. Hesap nesnesini yazdırdığınızda __tostring metametodu otomatik olarak çağrılacaktır.
Örneğin, girdiler 1001, 500, 1002 ve 750 ise, çıktı şöyle olmalıdır:
Account [1001]: Balance = 500
Account [1002]: Balance = 750Her hesabın artık benzersiz bir kimliği var ve kendini net bir şekilde tanımlayabiliyor; çok daha profesyonel bir bankacılık deneyimi!
Kendin dene
-- Account modülünü dahil et
local Account = require('Account')
-- Dört girişi oku
local id1 = io.read()
local deposit1 = tonumber(io.read())
local id2 = io.read()
local deposit2 = tonumber(io.read())
-- Kimliklerle iki hesap oluştur
local account1 = Account:new(id1)
local account2 = Account:new(id2)
-- İlgili tutarları yatır
account1:deposit(deposit1)
account2:deposit(deposit2)
-- Her hesabı yazdır (__tostring kullanır)
print(account1)
print(account2)
Object Oriented Programming bölümündeki tüm dersler
1'Self' Kavramı
Fonksiyonlu TablolarAçık 'self'İki Nokta SözdizimiNokta vs İki NoktaÖzet - Hareket Eden Nokta4Proje: Dijital Banka
Proje KurulumuPara Yatırma Metodu7Çok Biçimlilik ve Geçersiz Kılma
Metotları Geçersiz KılmaÜst Sınıf Metotlarını ÇağırmaDuck TypingOrtak ArayüzTür KontrolüÖzet - Çalışan Rolleri2Sınıf Prototip Kalıbı
Prototip Kavramı__index ile Bağlama:new() KurucusuÖznitelikleri BaşlatmaBağımsız ÖrneklerÖzet - Araba Fabrikası5OOP'de Operatör Aşırı Yükleme
Nesneleri ToplamaNesneleri ÇıkarmaNesneleri BirleştirmeNesneleri Karşılaştırma (<, >)Özet - Cüzdan Matematiği8Kapsülleme
Adlandırma KurallarıGizlilik için Closure'larClosure'lar Aracılığıyla ErişimSalt Okunur TablolarDoğrulama MantığıÖzet - Güvenli Kasa11Tasarım Kalıpları (Lite)
Fabrika FonksiyonlarıSingleton TablosuIterator KalıbıObserver (Dinleyici)Özet - Logger Fabrikası3Nesne Durumu ve Davranışı
Örnek DeğişkenleriGetter MetotlarıSetter MetotlarıHesaplanmış ÖzelliklerString BiçimlendirmeEşitlik KontrolleriÖzet - Öğrenci Notu6Kalıtımın Temelleri
Kalıtım KurulumuMetot KalıtımıConstructor'ı GenişletmeAlt Sınıf Metotları EklemePaylaşılan ve BenzersizÖzet - Şekil Hiyerarşisi