Menu
Coddy logo textTech

Hesap Bilgileri

Coddy'nin Lua Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 23 / 70.

challenge icon

Görev

Kolay

Dijital 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 bir id parametresi alacak şekilde değiştirin
    • Hesabın bilgilerini gösteren formatlanmış bir dize döndüren bir __tostring metametodu ekleyin
    Mevcut tüm işlevlerinizi (deposit, withdraw ve getBalance metotları) koruyun.
  • 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 = BALANCE

Burada ID hesabın kimliği, BALANCE ise mevcut bakiyesidir.

Dört girdi alacaksınız:

  1. Birinci hesabın ID'si
  2. Birinci hesabın yatırılacak tutarı
  3. İkinci hesabın ID'si
  4. İ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 = 750

Her 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