特定のタイプのオブジェクトを作成するためのテンプレート。
クラスを使用すると、オブジェクトでのプログラミングが容易になります。例えば、Frog クラスはカエルのように振る舞うオブジェクトを作成できます。クラスを使用して作成された 各オブジェクトは、そのクラスのインスタンスと呼ばれます。クラスのすべてのインスタンスは 同じタイプです。以下はFrogクラスのインスタンスを作成する例です:
let fifi = new Frog(50, 50, 20);
変数fifiはFrogクラスのインスタンスを参照します。キーワード newはnew Frog()文でFrogクラスのコンストラクタを呼び出すために使用されます。 全体として、新しいFrogオブジェクトが作成され、変数fifiに割り当てられました。 クラスはテンプレートなので、複数のインスタンスを作成するのに使用できます:
// 最初のFrogインスタンス
let frog1 = new Frog(25, 50, 10);
// 2番目のFrogインスタンス
let frog2 = new Frog(75, 50, 10);
シンプルなFrogクラスは以下のように宣言できます:
class Frog {
constructor(x, y, size) {
// このコードはインスタンスが作成されたときに一度だけ実行されます
this.x = x;
this.y = y;
this.size = size;
}
show() {
// このコードはmyFrog.show()が呼び出されたときに一度だけ実行されます
textAlign(CENTER, CENTER);
textSize(this.size);
text('🐸', this.x, this.y);
}
hop() {
// このコードはmyFrog.hop()が呼び出されたときに一度だけ実行されます
this.x += random(-10, 10);
this.y += random(-10, 10);
}
}
クラス宣言はclassキーワードで始まり、その後にクラス名(Frogなど)と 中括弧{}が続きます。クラス名はPascalCaseを使用し、名前に空白を含めることはできません。 例えば、クラスにKermit The Frogと各単語の間に空白を入れて名前を付けると、 SyntaxErrorがスローされます。中括弧{}の間のコードがクラスを定義します。
クラスに属する関数はメソッドと呼ばれます。constructor()、 show()、hop()はFrogクラスのメソッドです。メソッドはオブジェクトの 振る舞いを定義します。メソッドは関数と同様に、パラメータを受け取り、値を返すことができます。 メソッドにはfunctionキーワードを使用しないことに注意してください。
constructor()は、クラスのインスタンスが作成されたときに一度だけ呼び出される 特別なメソッドです。new Frog()文はFrogクラスのconstructor()メソッドを 呼び出します。
クラス定義はインスタンスのテンプレートです。キーワードthisはインスタンスの データとメソッドを参照します。例えば、各Frogインスタンスはthis.xとthis.yに 格納されたユニークな座標を持ちます。show()メソッドはこれらの座標を使用してカエルを 描画します。hop()メソッドは呼び出されたときにこれらの座標を更新します。Frog インスタンスが作成されると、そのデータとメソッドにはドット演算子.を使用してアクセス できます:
// 睡蓮の葉を描画
fill('green');
stroke('green');
circle(fifi.x, fifi.y, 2 * fifi.size);
// カエルを表示
fifi.show();
// ホップ
fifi.hop();