プロジェクトのセットアップ
CoddyのLuaジャーニー「オブジェクト指向プログラミング」セクションの一部。レッスン 55/70。
チャレンジ
簡単Shape Manager システムの基盤を構築しましょう!このプロジェクトは今後のいくつかのレッスンにわたって発展していくため、まずは基礎となる Shape クラスを含む、整理されたファイル構成を設定します。
コードを整理するために、2つのファイルを作成します。
Shape.lua:プロトタイプパターンを使用して、基礎となるShapeクラスを Define します。すべての図形にはname属性("Circle" や "Rectangle" など)があります。図形の名前を受け取る:new(name)constructor と、名前を返す:getName()method を含めます。main.lua:module を require して図形の instance を作成することで、Shape クラスを実際に動作させます。input から図形の名前を Read し、その名前で Shape を create して、:getName()を calling した結果を Print します。
この基礎クラスは、今後のレッスンで Rectangle や Circle のような特定の図形の親クラスとして機能します。今は、クラス構造を正しくすること、つまり __index の設定、constructor の pattern、そして getter method に集中してください。
Input: 図形の名前(string)を含む1行。
Output: :getName() によって返される図形の名前。
自分で試してみよう
-- Shapeモジュールを読み込む
local Shape = require('Shape')
-- 入力から図形名を読み取る
local shapeName = io.read()
-- TODO: 指定された名前で新しいShapeインスタンスを作成する
-- TODO: shapeに対して:getName()を呼び出した結果を出力する
オブジェクト指向プログラミングのすべてのレッスン
自分で練習してみよう: Luaオンラインコンパイラ