Hesap Bilgileri
Coddy'nin Lua Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 23 / 70.
Görev
KolayDijital Bankanız daha profesyonel hâle geliyor! Şimdi hesaplarınızın yazdırıldığında kendilerini düzgün bir şekilde görüntülemesini sağlayalım. Bir __tostring metamethod'u ekleyerek bir hesabın tam olarak nasıl görüneceğini kontrol edebilirsiniz: hesap ID'sini ve mevcut bakiyeyi temiz, okunabilir bir biçimde gösterebilirsiniz.
Mevcut dosyalarınız üzerinde çalışmaya devam edeceksiniz:
Account.lua: Account sınıfınızı iki yeni özellikle genişletin:- Her hesabı tanımlayan bir
:new()parametresini kabul etmesi içinidkurucusunu değiştirin - Hesap bilgilerini biçimlendirilmiş bir dize olarak döndüren bir
__tostringmetamethod'u ekleyin
- Her hesabı tanımlayan bir
main.lua: ID'lere sahip hesaplar oluşturun ve yazdırıldıklarında kendilerini nasıl görüntülediklerini gösterin.
__tostring metodu tam olarak şu biçimde bir dize döndürmelidir:
Account [ID]: Balance = BALANCEBurada ID hesabın ID'si, BALANCE ise mevcut bakiyesidir.
Dört girdi alacaksınız:
- İlk hesabın ID'si
- İlk hesabın yatırma tutarı
- İkinci hesabın ID'si
- İkinci hesabın yatırma tutarı
Ana dosyanızda verilen ID'lerle iki hesap oluşturun, ilgili tutarları her birine yatırın, ardından her hesabı doğrudan print() kullanarak yazdırın. Hesap nesnesini yazdırdığınızda __tostring metamethod'u otomatik olarak çağrılır.
Örneğin girdiler 1001, 500, 1002 ve 750 ise çıktı şöyle olmalıdır:
Account [1001]: Balance = 500
Account [1002]: Balance = 750Artık her hesabın benzersiz bir kimliği var ve kendisini açıkça tanımlayabiliyor: çok daha profesyonel bir bankacılık deneyimi!
Kendin dene
-- Account modülünü yükle
local Account = require('Account')
-- Dört girdiyi oku
local id1 = io.read()
local deposit1 = tonumber(io.read())
local id2 = io.read()
local deposit2 = tonumber(io.read())
-- ID'lerle 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)
Nesne Yönelimli Programlama 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şisiKendi başına pratik yap: Online Lua derleyicisi