Udfordring: Implementering af Getters og Setters i en Klasse
Opgave
Du arbejder med en Car-klasse, der har en privat egenskab #mileage. Din opgave er at definere getters og setters for denne egenskab for at kontrollere, hvordan den tilgås og ændres.
- Definer getter for Mileage: Definer en getter for egenskaben
mileagetil at hente den aktuelle kilometerstand; - Definer setter for Mileage med validering: Definer en setter for egenskaben
mileage, der accepterer en ny kilometerstand. Denne setter skal:- Kun tillade opdatering, hvis den nye kilometerstand er større end den nuværende (kilometerstanden kan kun øges);
- Hvis den nye kilometerstand er ugyldig, log
"Invalid mileage update"og ændr ikke den nuværende kilometerstand.
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
- Definer en
getaccessor formileagetil at hente den aktuelle kilometerstand; - Definer en
setaccessor formileage, der tagernewMileagesom parameter; - I setter-funktionen kontrolleres, om
newMileageer større end den nuværende kilometerstand (this.#mileage); - Hvis
newMileageer gyldig, opdateres#mileagetilnewMileage; - Hvis
newMileageikke er større end den nuværende kilometerstand, logges"Invalid mileage update", og kilometerstanden ændres ikke.
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
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Can you explain how getters and setters work in JavaScript?
What happens if I try to set the mileage to the same value as the current mileage?
Can you show how to add more validation to the setter, like checking for negative values?
Awesome!
Completion rate improved to 2.22
Udfordring: Implementering af Getters og Setters i en Klasse
Stryg for at vise menuen
Opgave
Du arbejder med en Car-klasse, der har en privat egenskab #mileage. Din opgave er at definere getters og setters for denne egenskab for at kontrollere, hvordan den tilgås og ændres.
- Definer getter for Mileage: Definer en getter for egenskaben
mileagetil at hente den aktuelle kilometerstand; - Definer setter for Mileage med validering: Definer en setter for egenskaben
mileage, der accepterer en ny kilometerstand. Denne setter skal:- Kun tillade opdatering, hvis den nye kilometerstand er større end den nuværende (kilometerstanden kan kun øges);
- Hvis den nye kilometerstand er ugyldig, log
"Invalid mileage update"og ændr ikke den nuværende kilometerstand.
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
- Definer en
getaccessor formileagetil at hente den aktuelle kilometerstand; - Definer en
setaccessor formileage, der tagernewMileagesom parameter; - I setter-funktionen kontrolleres, om
newMileageer større end den nuværende kilometerstand (this.#mileage); - Hvis
newMileageer gyldig, opdateres#mileagetilnewMileage; - Hvis
newMileageikke er større end den nuværende kilometerstand, logges"Invalid mileage update", og kilometerstanden ændres ikke.
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
Tak for dine kommentarer!