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
Tout était clair ?
Merci pour vos commentaires !
Section 1. Chapitre 10
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Génial!
Completion taux amélioré à 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
Tout était clair ?
Merci pour vos commentaires !
Section 1. Chapitre 10