Défi : Implémenter des Accesseurs et Mutateurs dans une Classe
Tâche
Vous travaillez avec une classe Car qui possède une propriété privée #mileage. Votre tâche consiste à définir des accesseurs (getters et setters) pour cette propriété afin de contrôler son accès et sa modification.
- Définir un getter pour le kilométrage : Définir un getter pour la propriété
mileageafin de récupérer le kilométrage actuel ; - Définir un setter pour le kilométrage avec validation : Définir un setter pour la propriété
mileagequi accepte une nouvelle valeur de kilométrage. Ce setter doit :- Autoriser la mise à jour uniquement si le nouveau kilométrage est supérieur à l’actuel (le kilométrage ne peut qu’augmenter) ;
- Si le nouveau kilométrage n’est pas valide, afficher
"Invalid mileage update"et ne pas modifier le kilométrage actuel.
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
- Définir un accesseur
getpourmileageafin de récupérer le kilométrage actuel ; - Définir un accesseur
setpourmileagequi prendnewMileagecomme paramètre ; - Dans le setter, vérifier si
newMileageest supérieur au kilométrage actuel (this.#mileage) ; - Si
newMileageest valide, mettre à jour#mileageavecnewMileage; - Si
newMileagen’est pas supérieur au kilométrage actuel, afficher"Invalid mileage update"et ne pas modifier le kilométrage.
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
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
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
Défi : Implémenter des Accesseurs et Mutateurs dans une Classe
Glissez pour afficher le menu
Tâche
Vous travaillez avec une classe Car qui possède une propriété privée #mileage. Votre tâche consiste à définir des accesseurs (getters et setters) pour cette propriété afin de contrôler son accès et sa modification.
- Définir un getter pour le kilométrage : Définir un getter pour la propriété
mileageafin de récupérer le kilométrage actuel ; - Définir un setter pour le kilométrage avec validation : Définir un setter pour la propriété
mileagequi accepte une nouvelle valeur de kilométrage. Ce setter doit :- Autoriser la mise à jour uniquement si le nouveau kilométrage est supérieur à l’actuel (le kilométrage ne peut qu’augmenter) ;
- Si le nouveau kilométrage n’est pas valide, afficher
"Invalid mileage update"et ne pas modifier le kilométrage actuel.
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
- Définir un accesseur
getpourmileageafin de récupérer le kilométrage actuel ; - Définir un accesseur
setpourmileagequi prendnewMileagecomme paramètre ; - Dans le setter, vérifier si
newMileageest supérieur au kilométrage actuel (this.#mileage) ; - Si
newMileageest valide, mettre à jour#mileageavecnewMileage; - Si
newMileagen’est pas supérieur au kilométrage actuel, afficher"Invalid mileage update"et ne pas modifier le kilométrage.
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
Merci pour vos commentaires !