Menu
Coddy logo textTech

Rectangleクラス

CoddyのLuaジャーニー「オブジェクト指向プログラミング」セクションの一部。レッスン 56/70。

challenge icon

チャレンジ

簡単

前のレッスンで作成した基底 Shape を継承する Rectangle class を作成して、Shape Manager を拡張しましょう。

コードを整理するために、次の3つのファイルを扱います。

  • Shape.lua:前のチャレンジで作成した基底 Shape class(:new(name):getName() を含む)。
  • Rectangle.lua:Shape を継承する Rectangle class を作成します。constructor は widthheight を受け取り、"Rectangle" という名前で parent constructor を呼び出し、dimensions を保存します。長方形の area を計算して返す :getArea() method を追加します。
  • main.lua:Rectangle module を Require し、input から width と height を読み取り、Rectangle instance を作成して、その名前を表示した後、別の行に area を表示します。

Rectangle instance が prototype chain を通じて Shape の method にアクセスできるように、inheritance のリンクを適切に設定してください。

入力: 2行です。1行目には width(number)、2行目には height(number)が含まれます。

出力: 2行です。まず :getName() による rectangle の名前、次に :getArea() による area を出力します。

自分で試してみよう

-- 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())

オブジェクト指向プログラミングのすべてのレッスン

自分で練習してみよう: Luaオンラインコンパイラ