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하고, 입력에서 width와 height를 읽고, Rectangle 인스턴스를 생성한 다음, 별도의 줄에 이름과 넓이를 차례로 출력합니다.

Rectangle 인스턴스가 프로토타입 체인을 통해 Shape의 메서드에 액세스할 수 있도록 상속 연결을 올바르게 설정해야 합니다.

입력: 두 줄입니다. 첫 번째 줄에는 width(숫자)가, 두 번째 줄에는 height(숫자)가 포함됩니다.

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

직접 해보기

-- Rectangle 모듈을 불러옵니다
local Rectangle = require('Rectangle')

-- 입력에서 너비와 높이를 읽습니다
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)의 모든 레슨

직접 연습해 보세요: 온라인 Lua 컴파일러