プロジェクトのセットアップ
CoddyのLuaジャーニー「Object Oriented Programming」セクションの一部 — レッスン 55/70。
チャレンジ
簡単Shape Managerシステムの基礎を構築しましょう!このプロジェクトは次の数レッスンにわたって成長していくため、まずはベースとなる Shape クラスを含むクリーンなファイル構造をセットアップすることから始めます。
コードを整理するために2つのファイルを作成します:
Shape.lua: プロトタイプパターンを使用してベースとなるShapeクラスを定義します。すべての図形はname属性("Circle" や "Rectangle" など)を持ちます。図形の名前を受け取る:new(name)コンストラクタと、それを返す:getName()メソッドを含めてください。main.lua: モジュールを require し、図形のインスタンスを作成することで、Shape クラスを実際に動かします。入力から図形の名前を読み取り、その名前で Shape を作成し、:getName()を呼び出した結果を出力してください。
このベースクラスは、今後のレッスンで Rectangle や Circle といった特定の図形の親クラスとして機能します。今は、クラス構造を正しく整えること(__index の設定、コンストラクタのパターン、およびゲッターメソッド)に集中してください。
入力: 図形の名前(文字列)を含む1行。
出力: :getName() によって返される図形の名前。
自分で試してみよう
-- Shapeモジュールを読み込む
local Shape = require('Shape')
-- 入力から図形の名前を読み込む
local shapeName = io.read()
-- TODO: 指定された名前で新しい Shape インスタンスを作成する
-- TODO: 作成した図形に対して :getName() を呼び出した結果を出力する