계좌 정보
Coddy Lua 여정의 Object Oriented Programming 섹션에 포함된 레슨 — 70개 중 23번째.
챌린지
쉬움여러분의 디지털 뱅크가 더욱 전문적으로 변하고 있습니다! 이제 계좌를 출력할 때 멋지게 표시되도록 만들어 봅시다. __tostring 메타메소드를 추가하면, 계좌 ID와 현재 잔액을 깔끔하고 읽기 쉬운 형식으로 보여주도록 계좌의 표시 방식을 정확하게 제어할 수 있습니다.
기존 파일들을 계속해서 확장해 나갈 것입니다:
Account.lua: 다음 두 가지 새로운 기능을 추가하여 Account 클래스를 확장하세요:- 각 계좌를 식별하는
id매개변수를 받도록:new()생성자를 수정합니다. - 계좌 정보를 보여주는 형식화된 문자열을 반환하는
__tostring메타메소드를 추가합니다.
- 각 계좌를 식별하는
main.lua: ID를 가진 계좌들을 생성하고, 출력될 때 어떻게 표시되는지 확인합니다.
__tostring 메소드는 반드시 다음 형식의 문자열을 반환해야 합니다:
Account [ID]: Balance = BALANCE여기서 ID는 계좌의 ID이고, BALANCE는 현재 잔액입니다.
네 개의 입력을 받게 됩니다:
- 첫 번째 계좌의 ID
- 첫 번째 계좌의 입금액
- 두 번째 계좌의 ID
- 두 번째 계좌의 입금액
메인 파일에서 주어진 ID로 두 개의 계좌를 생성하고, 각각의 금액을 입금한 뒤, print()를 사용하여 각 계좌를 직접 출력하세요. 계좌 객체를 출력할 때 __tostring 메타메소드가 자동으로 호출됩니다.
예를 들어, 입력값이 1001, 500, 1002, 750이라면 출력은 다음과 같아야 합니다:
Account [1001]: Balance = 500
Account [1002]: Balance = 750이제 각 계좌는 고유한 식별자를 가지며 스스로를 명확하게 설명할 수 있습니다. 훨씬 더 전문적인 뱅킹 경험이네요!
직접 해보기
-- Account 모듈을 불러옵니다
local Account = require('Account')
-- 네 개의 입력을 읽습니다
local id1 = io.read()
local deposit1 = tonumber(io.read())
local id2 = io.read()
local deposit2 = tonumber(io.read())
-- ID를 사용하여 두 개의 계정을 생성합니다
local account1 = Account:new(id1)
local account2 = Account:new(id2)
-- 각각의 금액을 입금합니다
account1:deposit(deposit1)
account2:deposit(deposit2)
-- 각 계정을 출력합니다 (__tostring 사용)
print(account1)
print(account2)