特定のタイプのオブジェクトを作成するためのテンプレート。
クラスを使用すると、オブジェクトでのプログラミングが容易になります。例えば、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();