チャレンジ:クラスでゲッターとセッターを実装する
メニューを表示するにはスワイプしてください
課題
Car クラスにはプライベートな #mileage プロパティがあります。このプロパティへのアクセスと変更方法を制御するために、ゲッターとセッターを定義してください。
- マイレージのゲッターを定義: 現在のマイレージを取得するための
mileageプロパティのゲッターを定義する; - バリデーション付きマイレージのセッターを定義: 新しいマイレージ値を受け取る
mileageプロパティのセッターを定義する。このセッターは以下を満たす必要があります:- 新しいマイレージが現在のマイレージより大きい場合のみ更新を許可する(マイレージは増加のみ可能);
- 新しいマイレージが無効な場合は、
"Invalid mileage update"をログに出力し、現在のマイレージを変更しない。
123456789101112131415161718192021222324252627class Car { #mileage = 1000; // Initial private mileage // Getter for mileage _____ mileage() { return this.#_____; } // Setter for mileage with validation _____ mileage(newMileage) { _____ (_____ > this.#_____) { this.#_____ = newMileage; } _____ { console.log(_____); } } } // Testing const car1 = new Car(); console.log(car1.mileage); // Expected: 1000 car1.mileage = 1500; // Update mileage to 1500 console.log(car1.mileage); // Expected: 1500 car1.mileage = 900; // Attempt invalid mileage update, expected: Invalid mileage update
- 現在のマイレージを取得するために
getのmileageアクセサを定義; setをパラメータとして受け取るmileageのnewMileageアクセサを定義;- セッター内で、
newMileageが現在のマイレージ(this.#mileage)より大きいかどうかを確認; newMileageが有効な場合、#mileageをnewMileageに更新;newMileageが現在のマイレージ以下の場合、"Invalid mileage update"をログに出力し、マイレージを変更しない。
123456789101112131415161718192021222324252627class Car { #mileage = 1000; // Initial private mileage // Getter for mileage get mileage() { return this.#mileage; } // Setter for mileage with validation set mileage(newMileage) { if (newMileage > this.#mileage) { this.#mileage = newMileage; } else { console.log('Invalid mileage update'); } } } // Testing const car1 = new Car(); console.log(car1.mileage); // Output: 1000 car1.mileage = 1500; // Update mileage to 1500 console.log(car1.mileage); // Output: 1500 car1.mileage = 900; // Attempt invalid mileage update, expected: Invalid mileage update
すべて明確でしたか?
フィードバックありがとうございます!
セクション 1. 章 10
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 1. 章 10