Menu
Coddy logo textTech

요약 - 지갑 산술 연산

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

challenge icon

챌린지

쉬움

이 장에서 배운 연산자 오버로딩 기술을 한데 모아 Wallet 클래스를 만들어 봅시다. 여러분의 지갑은 금액을 저장하며 두 가지 주요 연산을 지원합니다: +를 사용하여 지갑 합치기, 그리고 <code><와 를 사용하여 지갑 비교하기.

코드는 두 개의 파일로 구성됩니다:

  • Wallet.lua: 보유한 금액을 나타내는 amount 필드를 가진 Wallet 클래스를 정의합니다. :new(amount) 생성자를 포함하고 다음 두 가지 메타메소드를 구현하세요:
    • __add: 두 지갑을 더하면 합계 금액을 가진 새로운 지갑이 생성됩니다.
    • __lt: 지갑을 비교하여 어느 지갑에 돈이 더 적게 들어있는지 결정합니다.
  • main.lua: Wallet 모듈을 불러오고(require), 지갑 인스턴스를 생성하며, 두 연산이 함께 작동하는 것을 보여줍니다.

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

  1. 첫 번째 지갑의 금액
  2. 두 번째 지갑의 금액
  3. 세 번째 지갑의 금액

메인 파일에서 주어진 금액으로 세 개의 지갑을 생성하세요. 그런 다음:

  1. 첫 번째와 두 번째 지갑을 더해 결합된 지갑을 만듭니다.
  2. 결합된 지갑의 금액을 출력합니다.
  3. 결합된 지갑과 세 번째 지갑을 <code><를 사용하여 비교하고 결과(true 또는 false)를 출력합니다.
  4. 결합된 지갑과 세 번째 지갑을 를 사용하여 비교하고 결과(true 또는 false)를 출력합니다.

예를 들어, 입력값이 50, 30, 100이라면 출력은 다음과 같아야 합니다:

80
true
false

첫 번째 지갑(50)과 두 번째 지갑(30)을 더하면 80인 결합된 지갑이 생성됩니다. 80은 100보다 작으므로 첫 번째 비교는 true입니다. 80은 100보다 크지 않으므로 두 번째 비교는 false입니다.

직접 해보기

local Wallet = require('Wallet')

-- 입력 읽기
local amount1 = tonumber(io.read())
local amount2 = tonumber(io.read())
local amount3 = tonumber(io.read())

-- TODO: 주어진 금액으로 세 개의 지갑 생성

-- TODO: 첫 번째와 두 번째 지갑을 더해 결합된 지갑 생성

-- TODO: 결합된 지갑의 금액 출력

-- TODO: <를 사용하여 결합된 지갑과 세 번째 지갑을 비교하고 결과 출력

-- TODO: >를 사용하여 결합된 지갑과 세 번째 지갑을 비교하고 결과 출력

Object Oriented Programming의 모든 레슨