Rectangle 클래스
Coddy Lua 여정의 객체 지향 프로그래밍 (Object Oriented Programming) 섹션에 포함된 레슨. 70개 중 56번째.
챌린지
쉬움이제 이전 레슨에서 만든 기본 Shape을 상속하는 Rectangle 클래스를 생성하여 Shape Manager를 확장해 보겠습니다.
코드를 체계적으로 구성하기 위해 세 개의 파일을 사용합니다:
Shape.lua: 이전 챌린지에서 만든 기본 Shape 클래스(:new(name)및:getName()포함)입니다.Rectangle.lua: Shape을 상속하는 Rectangle 클래스를 생성합니다. 생성자는width와height를 받아야 하며, 이름"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 컴파일러