JavaScriptのclassとは?
JavaScript のクラスは、オブジェクト指向プログラミングの一部で、オブジェクトを作成するためのテンプレートを定義します。
クラスには、プロパティ(データ)とメソッド(関数)が含まれます。
クラスの構文としては以下のようになります。
class MyClass {
constructor(name) {
this.name = name;
}
}
インスタンスを作る流れはこんな感じ
const myObj = new MyClass("My Object");
インスタンスからプロパティとメソッドにアクセスすることもできます。以下のように↓
console.log(myObj.name); // "My Object"
また、JSのクラスは別のクラスから継承をすることも可能です。
class AnotherClass extends MyClass {
constructor(name, age) {
super(name);
this.age = age;
}
}
具体的なコード例
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
sayHello() {
console.log(`私の名前は${this.name}です。 私は${this.age}歳です。`);
}
}
const tanaka = new Person("田中慎太郎", 30);
console.log(tanaka.name); // "田中慎太郎"
console.log(tanaka.age); // 30
tanaka.sayHello(); // "私の名前は田中慎太郎です。 私は30歳です。"
class Student extends Person {
constructor(name, age, major) {
super(name, age);
this.major = major;
}
sayHello() {
console.log(`私の名前は${this.name}です。 私は${this.major}を専攻しています。`);
}
}
const ohtani = new Student("大谷洋子", 20, "経済学");
console.log(ohtani.name); // "大谷洋子"
console.log(ohtani.age); // 20
console.log(ohtani.major); // "経済学"
ohtani.sayHello(); // "私の名前は大谷洋子です。 私は経済学を専攻しています。"
上記の例では、Person クラスが名前と年齢のプロパティを持ち、 sayHello() メソッドを持つことを示しています。
Student クラスは Person クラスを継承し、専攻の major プロパティを追加し、 sayHello() メソッドをオーバーライドしています。
これらの例を使用して、JavaScript のクラスがどのように使用され、オブジェクト指向プログラミングの概念を実装するのに役立つかを理解することができます。