確認テスト: オブジェクト指向 JavaScript
この確認テストの目的は、JavaScript でのクラスの記事を理解できたかどうかを評価することです。
メモ: 手助けが必要な場合は、確認テスト使用ガイドをお読みください。また、コミュニケーションチャネルのいずれかを使用して、私たちに連絡することもできます。
OOJS 1
この課題では、Shape クラスの定義から始めましょう。このクラスには name, sides, sideLength の 3 つのプロパティがあります。このクラスは、正方形や正三角形のように、すべての辺の長さが同じである図形のみをモデルとしています。
課題を完了するには、次のようにしてください。
- このクラスにコンストラクターを追加しましょう。コンストラクターは
name,sides,sideLengthプロパティを引数に取り、初期化します。 - このクラスに新しいメソッド
calcPerimeter()を追加しましょう。このメソッドは、外周の長さ(図形の外縁の長さ)を計算し、その結果をコンソールにログ出力します。 Shapeクラスの新しいインスタンスsquareを作成しましょう。名前にsquare、sidesに4、sideLengthに5を指定しましょう。- このインスタンスに対して
calcPerimeter()メソッドを呼び出して、計算結果が期待通りにブラウザーコンソールにログ出力されるかどうかを確認しましょう。 - 新しい
Shapeのインスタンスとしてtriangleを作成しましょう。nameはtriangle、sidesは3、sideLengthは3とします。 triangle.calcPerimeter()を呼び出して、問題なく動作することを確認しましょう。
js
class Shape {
name;
sides;
sideLength;
}
ここをクリックすると、模範解答を表示します。
最終的な JavaScript は、次のようになるでしょう。
js
class Shape {
name;
sides;
sideLength;
constructor(name, sides, sideLength) {
this.name = name;
this.sides = sides;
this.sideLength = sideLength;
}
calcPerimeter() {
console.log(
`${this.name} の外周の長さは ${this.sides * this.sideLength} です。`,
);
}
}
const square = new Shape("square", 4, 5);
square.calcPerimeter();
const triangle = new Shape("triangle", 3, 3);
triangle.calcPerimeter();
OOJS 2
それでは、いくつか継承を加えてみましょう。
課題を完了するには、次のようにしてください。
Shapeを継承したSquareクラスを作成しましょう。- 領域の面積を計算する
calcArea()メソッドをSquareに追加しましょう。 Squareオブジェクトインスタンスのnameプロパティには自動的にsquareが設定され、sidesプロパティには自動的に4が設定されるようにコンストラクターを設定しましょう。コンストラクターを呼び出す際には、sideLengthプロパティだけを提供すればよいことになります。- 適切なプロパティ値を持つ
Squareクラスのインスタンスsquareを作成し、そのcalcPerimeter()とcalcArea()メソッドを呼び出して、問題なく動作することを示しましょう。
js
class Shape {
name;
sides;
sideLength;
constructor(name, sides, sideLength) {
this.name = name;
this.sides = sides;
this.sideLength = sideLength;
}
calcPerimeter() {
console.log(
`${this.name} の外周の長さは ${this.sides * this.sideLength} です。`,
);
}
}
// ここから上のコードは変更しないでください。
// ここにコードを追加してください。
ここをクリックすると、模範解答を表示します。
最終的な JavaScript は、次のようになるでしょう。
js
// ...
// ここから上のコードは変更しないでください。
class Square extends Shape {
constructor(sideLength) {
super("square", 4, sideLength);
}
calcArea() {
console.log(
`${this.name} の面積は ${this.sideLength * this.sideLength} 平方です。`,
);
}
}
const square = new Square(4);
square.calcPerimeter();
square.calcArea();