Sfida: Implementare Getter e Setter in una Classe
Compito
Si sta lavorando all'interno di una classe Car che possiede una proprietà privata #mileage. L'obiettivo è definire getter e setter per questa proprietà per controllarne l'accesso e la modifica.
- Definizione del Getter per Mileage: Definire un getter per la proprietà
mileageper recuperare il valore attuale del chilometraggio; - Definizione del Setter per Mileage con Validazione: Definire un setter per la proprietà
mileageche accetti un nuovo valore di chilometraggio. Questo setter deve:- Consentire l'aggiornamento solo se il nuovo chilometraggio è maggiore di quello attuale (il chilometraggio può solo aumentare);
- Se il nuovo chilometraggio non è valido, registrare
"Invalid mileage update"e non modificare il valore attuale.
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
- Definire un accessore
getpermileageper recuperare il chilometraggio attuale; - Definire un accessore
setpermileageche accettinewMileagecome parametro; - Nel setter, verificare se
newMileageè maggiore del chilometraggio attuale (this.#mileage); - Se
newMileageè valido, aggiornare#mileageconnewMileage; - Se
newMileagenon è maggiore del chilometraggio attuale, registrare"Invalid mileage update"e non modificare il chilometraggio.
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
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
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
Sfida: Implementare Getter e Setter in una Classe
Scorri per mostrare il menu
Compito
Si sta lavorando all'interno di una classe Car che possiede una proprietà privata #mileage. L'obiettivo è definire getter e setter per questa proprietà per controllarne l'accesso e la modifica.
- Definizione del Getter per Mileage: Definire un getter per la proprietà
mileageper recuperare il valore attuale del chilometraggio; - Definizione del Setter per Mileage con Validazione: Definire un setter per la proprietà
mileageche accetti un nuovo valore di chilometraggio. Questo setter deve:- Consentire l'aggiornamento solo se il nuovo chilometraggio è maggiore di quello attuale (il chilometraggio può solo aumentare);
- Se il nuovo chilometraggio non è valido, registrare
"Invalid mileage update"e non modificare il valore attuale.
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
- Definire un accessore
getpermileageper recuperare il chilometraggio attuale; - Definire un accessore
setpermileageche accettinewMileagecome parametro; - Nel setter, verificare se
newMileageè maggiore del chilometraggio attuale (this.#mileage); - Se
newMileageè valido, aggiornare#mileageconnewMileage; - Se
newMileagenon è maggiore del chilometraggio attuale, registrare"Invalid mileage update"e non modificare il chilometraggio.
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
Grazie per i tuoi commenti!