クラスとは?
JavaScriptでは、オブジェクト指向プログラミングの基本概念であるクラスを使って、オブジェクトの設計を簡単に行うことができます。クラスとは、オブジェクトのプロパティとメソッドを定義するためのテンプレートです。これにより、オブジェクトを簡単に生成し、複数のインスタンスを作成できます。
クラス宣言の基本構文
クラス宣言はclass
キーワードを使って行います。クラスは通常、コンストラクタ(constructor
)を含み、オブジェクトが生成されたときに初期化されます。
class Car {
constructor(make, model) {
this.make = make;
this.model = model;
}
start() {
return `${this.make} ${this.model} starts.`;
}
}
この例では、Car
というクラスが定義されています。constructor
メソッドは、make
とmodel
という2つの引数を受け取り、インスタンスごとに異なるプロパティを設定します。
インスタンス生成の方法
クラスからオブジェクトを生成するには、new
キーワードを使用します。これによりクラスのインスタンスが作成され、クラスのプロパティやメソッドにアクセスできるようになります。
let myCar = new Car('Toyota', 'Corolla');
console.log(myCar.start()); // 出力: Toyota Corolla starts.
このコードでは、myCar
というオブジェクトがCar
クラスから生成され、start
メソッドを使用して車を起動するメッセージが表示されます。
クラス宣言とインスタンス生成の流れ
クラス宣言とインスタンス生成の手順は以下のように進行します。
- クラス宣言:
class
キーワードを使ってクラスを定義します。クラス内にはプロパティやメソッドが含まれます。 - コンストラクタ: インスタンスが生成される際に呼び出される
constructor
メソッドで、初期化処理を行います。 - インスタンス生成:
new
キーワードを使用してクラスのインスタンスを作成します。 - メソッドの実行: 生成されたインスタンスから、クラスで定義されたメソッドを実行できます。
クラスの特徴
クラスには以下の特徴があります。
特徴 | 説明 |
---|---|
クラスベース | クラスは、複数のオブジェクトの構造を定義するテンプレートです。 |
インスタンス生成 | new キーワードを使用してクラスからインスタンスを生成できます。 |
コンストラクタ | インスタンス生成時に初期化処理を行うための特殊なメソッドです。 |
メソッド定義 | クラス内で定義されたメソッドを、生成されたインスタンスで利用できます。 |
クラスの活用例
クラスはオブジェクト指向の強力な機能であり、同じ構造の複数のオブジェクトを作成するのに役立ちます。以下にクラスを利用したもう一つの例を示します。
クラス活用例:Personクラス
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
introduce() {
return `Hi, I'm ${this.name} and I'm ${this.age} years old.`;
}
}
let person1 = new Person('Alice', 30);
let person2 = new Person('Bob', 25);
console.log(person1.introduce()); // 出力: Hi, I'm Alice and I'm 30 years old.
console.log(person2.introduce()); // 出力: Hi, I'm Bob and I'm 25 years old.
この例では、Person
クラスが定義され、person1
とperson2
という2つのインスタンスが生成されています。それぞれのインスタンスで異なるname
とage
を保持し、introduce
メソッドを使って自己紹介を行います。
まとめ
JavaScriptのクラスは、オブジェクト指向プログラミングを実現するための重要な機能です。クラスを使うことで、オブジェクトの構造を明確にし、複数のインスタンスを容易に生成できるようになります。クラスの宣言はclass
キーワードを使い、インスタンスはnew
キーワードで生成します。
この仕組みを理解し、クラスとインスタンスを効果的に利用することで、より強力で再利用可能なコードを書くことができるようになります。