Menu
Coddy logo textTech

요약 - 도형 계층 구조

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

challenge icon

챌린지

쉬움

처음부터 완전한 도형 계층 구조를 만들어 봅시다! 모든 도형이 상속받는 Shape 부모 클래스를 만든 다음, 공통 기능을 공유하면서 각자 고유한 속성을 가진 CircleSquare 자식 클래스를 구축하게 됩니다.

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

  • Shape.lua: 모든 도형이 상속받을 기본 클래스입니다. 도형의 색상을 저장하는 :new(color) 생성자와 이를 반환하는 :getColor() 메서드가 있어야 합니다. 이 공유 속성은 원이든 사각형이든 모든 도형이 색상을 갖게 됨을 의미합니다.
  • Circle.lua: Shape를 상속받는 자식 클래스입니다. :new(color, radius) 생성자는 색상 처리를 위해 부모 생성자를 호출한 다음, 반지름을 고유 속성으로 추가해야 합니다. 원의 상세 정보를 출력하는 :describe() 메서드를 포함하세요.
  • Square.lua: Shape를 상속받는 또 다른 자식 클래스입니다. :new(color, side) 생성자 역시 부모 생성자를 호출한 다음, 변의 길이를 저장해야 합니다. 사각형을 위한 :describe() 메서드도 포함하세요.
  • main.lua: 두 도형의 인스턴스를 생성하고, 고유한 속성을 유지하면서 Shape로부터 올바르게 상속받는지 입증하여 모든 것을 하나로 합칩니다.

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

  1. 원 데이터: 쉼표로 구분된 색상과 반지름 (예: blue,5)
  2. 사각형 데이터: 쉼표로 구분된 색상과 변의 길이 (예: red,4)

메인 파일에서 주어진 값으로 Circle과 Square를 생성하세요. 그런 다음 별도의 줄에 다음 내용을 출력하세요:

  1. 원의 :describe() 호출
  2. 사각형의 :describe() 호출
  3. :getColor()를 사용하여 원의 색상 출력
  4. :getColor()를 사용하여 사각형의 색상 출력

Circle의 :describe() 메서드는 다음을 출력해야 합니다:

Circle with radius {radius}

Square의 :describe() 메서드는 다음을 출력해야 합니다:

Square with side {side}

예를 들어, 입력이 blue,5red,4인 경우 출력은 다음과 같아야 합니다:

Circle with radius 5
Square with side 4
blue
red

이것은 완전한 상속 패턴을 보여줍니다: 두 도형 모두 Shape로부터 :getColor()를 상속받으며(직접 정의하지 않음), 각자 고유한 속성과 :describe() 메서드를 가집니다!

직접 해보기

-- main.lua: 모든 것을 하나로 합칩니다

local Circle = require('Circle')
local Square = require('Square')

-- 원의 입력값 읽기 (색상, 반지름)
local circleInput = io.read()
local circleColor, circleRadius = circleInput:match("([^,]+),([^,]+)")
circleRadius = tonumber(circleRadius)

-- 사각형의 입력값 읽기 (색상, 변의 길이)
local squareInput = io.read()
local squareColor, squareSide = squareInput:match("([^,]+),([^,]+)")
squareSide = tonumber(squareSide)

-- TODO: 주어진 색상과 반지름으로 Circle 인스턴스 생성

-- TODO: 주어진 색상과 변의 길이로 Square 인스턴스 생성

-- TODO: 원에 대해 :describe() 호출

-- TODO: 사각형에 대해 :describe() 호출

-- TODO: :getColor()를 사용하여 원의 색상 출력

-- TODO: :getColor()를 사용하여 사각형의 색상 출력

Object Oriented Programming의 모든 레슨