Menu
Coddy logo textTech

Rectangle 클래스

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

challenge icon

챌린지

쉬움

이제 이전 레슨에서 만든 기본 Shape 클래스를 상속받는 Rectangle 클래스를 만들어 Shape Manager를 확장해 보겠습니다.

코드를 체계적으로 관리하기 위해 세 개의 파일로 작업하게 됩니다:

  • Shape.lua: 이전 챌린지에서 만든 기본 Shape 클래스입니다 (:new(name):getName() 포함).
  • Rectangle.lua: Shape를 상속받는 Rectangle 클래스를 만듭니다. 생성자는 widthheight를 인자로 받고, 부모 생성자를 "Rectangle"이라는 이름으로 호출하며, 크기를 저장해야 합니다. 사각형의 넓이를 계산하여 반환하는 :getArea() 메서드를 추가하세요.
  • main.lua: Rectangle 모듈을 불러오고(require), 입력에서 너비와 높이를 읽어 Rectangle 인스턴스를 생성한 후, 이름과 넓이를 각각 별도의 줄에 출력합니다.

Rectangle 인스턴스가 프로토타입 체인을 통해 Shape의 메서드에 접근할 수 있도록 상속 연결을 올바르게 설정해야 함을 기억하세요.

입력: 두 줄 — 첫 번째 줄은 너비(숫자), 두 번째 줄은 높이(숫자)를 포함합니다.

출력: 두 줄 — :getName()에서 반환된 사각형의 이름과 :getArea()에서 반환된 넓이입니다.

직접 해보기

-- Rectangle 모듈을 가져옵니다
local Rectangle = require('Rectangle')

-- 입력으로부터 width와 height를 읽습니다
local width = tonumber(io.read())
local height = tonumber(io.read())

-- 주어진 치수로 새로운 Rectangle 인스턴스를 생성합니다
local rect = Rectangle:new(width, height)

-- 사각형의 이름과 면적을 출력합니다
print(rect:getName())
print(rect:getArea())

Object Oriented Programming의 모든 레슨