INDEX
クラスとは?

JavaScriptでは、オブジェクト指向プログラミングを分かりやすく記述するためにクラス(class)を使用できます。
クラスとは、オブジェクトのプロパティ(データ)とメソッド(処理)をまとめて定義するためのテンプレート(設計図)のことです。同じ構造を持つオブジェクトを何度も作成したい場合に便利で、コードの再利用性や保守性を高めることができます。
なお、JavaScriptのクラスはES6(ECMAScript 2015)で追加された構文です。内部的には従来のプロトタイプベースの仕組みを利用していますが、より分かりやすく記述できるようになっています。
クラス宣言の基本構文
クラスはclassキーワードを使って定義します。初期化処理を行うconstructorや、インスタンスで利用するメソッドを定義できます。
class Car {
constructor(make, model) {
this.make = make;
this.model = model;
}
start() {
return `${this.make} ${this.model} starts.`;
}
}
このクラスでは、車のメーカーと車種を保持し、start()メソッドでメッセージを返しています。
class CarでCarクラスを定義しています。constructor()はインスタンス生成時に自動で呼び出されます。thisは生成されたインスタンス自身を表します。start()は各インスタンスから呼び出せるメソッドです。
インスタンスを生成する方法
クラスからオブジェクトを作成するには、newキーワードを使用します。生成されたオブジェクトをインスタンスと呼びます。
const myCar = new Car("Toyota", "Corolla");
console.log(myCar.start());
実行結果
Toyota Corolla starts.
この例では、CarクラスからmyCarというインスタンスを生成し、start()メソッドを実行しています。
クラス宣言とインスタンス生成の流れ
クラスを利用する基本的な流れは次のようになります。
- クラスを定義する:
classで設計図を作成する。 - constructorを定義する:初期値を設定する。
- newでインスタンスを生成する:設計図からオブジェクトを作成する。
- メソッドを呼び出す:インスタンスごとの処理を実行する。
クラスの特徴
| 特徴 | 説明 |
|---|---|
| クラスベース | 同じ構造を持つオブジェクトの設計図として利用できる。 |
| インスタンス生成 | newキーワードでオブジェクトを生成できる。 |
| constructor | インスタンス生成時に一度だけ実行される初期化用メソッド。 |
| メソッド定義 | インスタンスで利用できる処理をまとめて定義できる。 |
| 再利用しやすい | 同じ処理を複数のオブジェクトで共有できる。 |
クラスを使うメリット
クラスを利用すると、次のようなメリットがあります。
- 同じ構造のオブジェクトを簡単に作成できる。
- データと処理をまとめて管理できる。
- コードの重複を減らせる。
- 保守や機能追加がしやすくなる。
- 継承などのオブジェクト指向機能を利用しやすい。
クラスの活用例
次は、人を表すクラスを作成する例です。
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.`;
}
}
const person1 = new Person("Alice", 30);
const person2 = new Person("Bob", 25);
console.log(person1.introduce());
console.log(person2.introduce());
実行結果
Hi, I'm Alice and I'm 30 years old.
Hi, I'm Bob and I'm 25 years old.
この例では、同じPersonクラスから2人分のインスタンスを生成しています。それぞれ異なる名前と年齢を保持していますが、同じintroduce()メソッドを利用できます。
初心者が覚えておきたいポイント
classは設計図、newで作られたオブジェクトがインスタンスです。constructorは省略できますが、初期値を設定する場合によく使用します。thisは現在のインスタンスを表します。- クラス名は慣例として先頭を大文字(パスカルケース)で記述します。
- 1つのクラスから何個でもインスタンスを生成できます。
まとめ
- クラスはオブジェクトを作成するための設計図である。
classキーワードでクラスを定義する。constructorでインスタンス生成時の初期化を行う。newを使用してインスタンスを生成する。thisは現在のインスタンスを表す。- クラスを利用すると、再利用しやすく保守性の高いコードを書ける。