Menu
Coddy logo textTech

Para Transferi

Coddy'nin Lua Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 24 / 70.

challenge icon

Görev

Kolay

Dijital Bankanız neredeyse tamamlandı! Son büyük özellik, hesaplar arasında para transferi yapabilme yeteneğidir. Nesne yönelimli tasarımınızın gerçekten öne çıktığı yer burasıdır: bir hesap nesnesi, başka bir hesap nesnesiyle doğrudan etkileşime girebilir.

Bir hesaptan diğerine para aktaran :transfer(targetAccount, amount) metodunu ekleyeceksiniz. Bu işlemin gerçekte neleri kapsadığını düşünün: kaynak hesaptan para çekme ve ardından hedef hesaba para yatırma. Güzelliği, daha önce oluşturduğunuz metotları yeniden kullanabilmenizdir!

Mevcut dosyalarınız üzerine geliştirmeye devam edin:

  • Account.lua: Account sınıfınıza bir :transfer(targetAccount, amount) metodu ekleyin. Bu metot, self üzerinden tutarı çekmeyi denemeli ve işlem başarılı olursa bu tutarı targetAccount hesabına yatırmalıdır. Para çekme işlemi başarısız olursa (yetersiz bakiye), transfer gerçekleşmemelidir. Mevcut tüm işlevlerinizi koruyun (ID içeren kurucu, deposit, withdraw, getBalance ve __tostring).
  • main.lua: Birden fazla hesap oluşturun ve hesap bakiyelerinin farklı hesap nesneleri arasında nasıl değiştiğini göstererek transferleri sergileyin.

Beş girdi alacaksınız:

  1. İlk hesabın ID'si
  2. İkinci hesabın ID'si
  3. İlk hesaba yatırılacak başlangıç tutarı
  4. İlk transfer tutarı (1. hesaptan 2. hesaba)
  5. İkinci transfer tutarı (1. hesaptan 2. hesaba)

Ana dosyanızda, verilen ID'lere sahip iki hesap oluşturun (her ikisi de başlangıçta 0 bakiyeye sahip olmalıdır), başlangıç tutarını ilk hesaba yatırın, ardından ilk hesaptan ikinci hesaba yapılacak her iki transferi deneyin. Her transfer denemesinden sonra her iki hesabı da yazdırın (__tostring mevcut durumlarını gösterecektir).

Örneğin, girdiler 101, 102, 500, 200 ve 400 ise çıktı şu şekilde olmalıdır:

Account [101]: Balance = 300
Account [102]: Balance = 200
Insufficient funds
Account [101]: Balance = 300
Account [102]: Balance = 200

İlk hesap, para yatırma işleminden sonra 500 ile başlar. 200 tutarındaki ilk transfer başarılı olur; bunun sonucunda 101 numaralı hesapta 300, 102 numaralı hesapta ise 200 kalır. 400 tutarındaki ikinci transfer başarısız olur çünkü 101 numaralı hesapta yalnızca 300 vardır; bu nedenle her iki bakiye de değişmeden kalır.

Kendin dene

-- Account modülünü yükle
local Account = require('Account')

-- Beş girdiyi oku
local id1 = io.read()
local id2 = io.read()
local initialDeposit = tonumber(io.read())
local transfer1 = tonumber(io.read())
local transfer2 = tonumber(io.read())

-- ID'lerle iki hesap oluştur
local account1 = Account:new(id1)
local account2 = Account:new(id2)

-- İlk hesaba başlangıç tutarını yatır
account1:deposit(initialDeposit)

-- TODO: account1'den account2'ye ilk transferi dene

-- TODO: İlk transferden sonra her iki hesabı da yazdır

-- TODO: account1'den account2'ye ikinci transferi dene

-- TODO: İkinci transferden sonra her iki hesabı da yazdır

Nesne Yönelimli Programlama bölümündeki tüm dersler

Kendi başına pratik yap: Online Lua derleyicisi