プレゼンテーションシナリオ: スライド144、145
スライド144と145では、JavaScript Classesについて説明します。
例:車の管理
1. Class Car(親):
- プロパティを初期化するための
constructor(name, year)があります。 - 車の年齢を計算するためのインスタンスメソッド
getAge()があります。 - 2台の車を比較するための静的メソッド
compareAge()があり、Car.compareAge()を通じて直接呼び出されます。
2. Class Model(子):
- 継承するために
extends Carを使用します。 - コンストラクタ内で、
super(name, year)を使用してCarのコンストラクタを呼び出します。 - 詳細情報を表示するための
showInfo()メソッドを追加します。
3. 子クラスからオブジェクトを作成:
const car1 = new Model("Toyota", 2015, "Corolla");
name、year、modelの完全な情報を持つ車を作成します。
4. メソッドの呼び出し:
car1.showInfo()→ 子クラスのメソッドを呼び出します。car1.getAge()→ 親クラスから継承します。Car.compareAge(car1, car2)→ 親クラスの静的メソッドを呼び出します。
完全なコード:
// Parent class
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
// Instance method
getAge() {
const age = new Date().getFullYear() - this.year;
return `${this.name} is ${age} years old.`;
}
// Static method
static compareAge(car1, car2) {
return car1.year - car2.year;
}
}
// Child class
class Model extends Car {
constructor(name, year, model) {
super(name, year); // call parent constructor
this.model = model;
}
// Instance method
showInfo() {
return `${this.name} ${this.model} (${this.year})`;
}
}
// Create objects
const car1 = new Model("Toyota", 2015, "Corolla");
const car2 = new Model("Honda", 2018, "Civic");
// Use instance methods
console.log(car1.showInfo()); // Toyota Corolla (2015)
console.log(car1.getAge()); // Toyota is X years old
// Use static method
console.log(Car.compareAge(car1, car2)); // -3
以上で、JavaScript Classes、親/子クラスの作成方法、constructor、インスタンスメソッド、静的メソッドの使用についての説明を終わります。