계좌 정보
Coddy Lua 여정의 객체 지향 프로그래밍 (Object Oriented Programming) 섹션에 포함된 레슨. 70개 중 23번째.
챌린지
쉬움여러분의 Digital Bank가 더욱 전문적으로 발전하고 있습니다! 이제 계정이 출력될 때 보기 좋게 자신을 표시하도록 만들어 봅시다. __tostring 메타메서드를 추가하면 계정이 표시되는 방식을 정확하게 제어할 수 있습니다. 계정 ID와 현재 잔액을 깔끔하고 읽기 쉬운 형식으로 모두 표시할 수 있습니다.
기존 파일을 계속 확장해 보겠습니다.
Account.lua: 두 가지 새로운 기능으로 Account class를 확장합니다.:new()constructor가 각 계정을 식별하는idparameter를 accept하도록 Modify합니다.- 계정 정보를 표시하는 형식이 지정된 문자열을 returns하는
__tostringmetamethod를 Add합니다.
main.lua: IDs를 사용하여 계정을 Create하고, 출력할 때 계정이 자신을 어떻게 표시하는지 보여 줍니다.
__tostring method는 다음과 같은 정확한 형식의 문자열을 returns해야 합니다.
Account [ID]: Balance = BALANCE여기서 ID는 계정의 ID이고 BALANCE는 현재 잔액입니다.
네 개의 inputs를 받습니다.
- 첫 번째 계정의 ID
- 첫 번째 계정의 deposit amount
- 두 번째 계정의 ID
- 두 번째 계정의 deposit amount
main 파일에서 주어진 IDs로 두 개의 계정을 Create하고, 각각에 respective amounts를 deposit한 다음 print()를 사용하여 각 계정을 직접 출력하세요. 계정 object를 출력하면 __tostring metamethod가 자동으로 호출됩니다.
예를 들어 inputs가 1001, 500, 1002, 750인 경우 output은 다음과 같아야 합니다.
Account [1001]: Balance = 500
Account [1002]: Balance = 750이제 각 계정은 고유한 정체성을 가지며 자신을 명확하게 설명할 수 있습니다. 훨씬 더 전문적인 banking experience입니다!
직접 해보기
-- 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)
객체 지향 프로그래밍 (Object Oriented Programming)의 모든 레슨
직접 연습해 보세요: 온라인 Lua 컴파일러