Menu
Coddy logo textTech

계좌 정보

Coddy Lua 여정의 Object Oriented Programming 섹션에 포함된 레슨 — 70개 중 23번째.

challenge icon

챌린지

쉬움

여러분의 디지털 뱅크가 더욱 전문적으로 변하고 있습니다! 이제 계좌를 출력할 때 멋지게 표시되도록 만들어 봅시다. __tostring 메타메소드를 추가하면, 계좌 ID와 현재 잔액을 깔끔하고 읽기 쉬운 형식으로 보여주도록 계좌의 표시 방식을 정확하게 제어할 수 있습니다.

기존 파일들을 계속해서 확장해 나갈 것입니다:

  • Account.lua: 다음 두 가지 새로운 기능을 추가하여 Account 클래스를 확장하세요:
    • 각 계좌를 식별하는 id 매개변수를 받도록 :new() 생성자를 수정합니다.
    • 계좌 정보를 보여주는 형식화된 문자열을 반환하는 __tostring 메타메소드를 추가합니다.
    기존의 모든 기능(deposit, withdraw, getBalance 메소드)은 그대로 유지하세요.
  • main.lua: ID를 가진 계좌들을 생성하고, 출력될 때 어떻게 표시되는지 확인합니다.

__tostring 메소드는 반드시 다음 형식의 문자열을 반환해야 합니다:

Account [ID]: Balance = BALANCE

여기서 ID는 계좌의 ID이고, BALANCE는 현재 잔액입니다.

네 개의 입력을 받게 됩니다:

  1. 첫 번째 계좌의 ID
  2. 첫 번째 계좌의 입금액
  3. 두 번째 계좌의 ID
  4. 두 번째 계좌의 입금액

메인 파일에서 주어진 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)

Object Oriented Programming의 모든 레슨