JavaScriptのクラスとは?オブジェクト指向の基本構文を解説
JavaScriptでは、複数のデータや機能をまとめて扱うために「クラス(class)」を使うことができます。
クラスを使うと、設計を整理しやすくなり、再利用性の高いコードが書けるようになります。
この記事では、JavaScriptのクラスの基本構文から、コンストラクタ、メソッド、継承までをわかりやすく解説します。
クラスとは?
クラスとは、オブジェクトの「設計図」のようなものです。
同じ構造を持つオブジェクトを何度も作りたいときに便利です。
クラスの基本構文
class クラス名 {
constructor(引数) {
// 初期化処理
}
メソッド名() {
// 処理
}
}
例:Personクラス
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
greet() {
console.log("こんにちは、私は" + this.name + "です");
}
}
const taro = new Person("太郎", 25);
taro.greet(); // こんにちは、私は太郎です
new
を使ってインスタンス(実体)を作成します。
constructorとは?
constructor
は、クラスからインスタンスを生成するときに自動的に呼ばれる特別なメソッドです。
初期値の設定などに使います。
メソッドの定義
クラスの中で定義する関数は「メソッド」と呼ばれ、オブジェクトの動作を定義します。
class Animal {
speak() {
console.log("鳴きます");
}
}
プロパティへのアクセス
this
を使って、クラス内でインスタンスのプロパティにアクセスします。
class User {
constructor(name) {
this.name = name;
}
showName() {
console.log(this.name);
}
}
クラスの継承(extends)
extends
を使うことで、既存のクラスの機能を引き継ぐことができます。
class Animal {
speak() {
console.log("何かが鳴いています");
}
}
class Dog extends Animal {
speak() {
console.log("ワンワン!");
}
}
const d = new Dog();
d.speak(); // ワンワン!
継承したクラスでは、元のクラスのメソッドを上書き(オーバーライド)することも可能です。
superで親クラスのconstructorを呼び出す
class Animal {
constructor(name) {
this.name = name;
}
}
class Cat extends Animal {
constructor(name, color) {
super(name);
this.color = color;
}
}
super()
は、親クラスの constructor を呼び出すために使います。
まとめ
- クラスはオブジェクトの設計図のようなもの
constructor
で初期値を設定する
- メソッドでオブジェクトの動作を定義できる
new
キーワードでインスタンスを作成する
extends
でクラスを継承できる
super()
で親のコンストラクタを呼び出す
クラスを使いこなすと、大規模なプログラムでも構造をわかりやすく保つことができます。
まずは基本的なクラスの定義から、実際にインスタンスを作って動作を確認してみましょう。