Desafío: Implementar Getters y Setters en una Clase
Tarea
Se está trabajando dentro de una clase Car
que tiene una propiedad privada #mileage
. La tarea consiste en definir getters y setters para esta propiedad para controlar cómo se accede y modifica.
- Definir Getter para Mileage: Definir un getter para la propiedad
mileage
para recuperar el kilometraje actual; - Definir Setter para Mileage con Validación: Definir un setter para la propiedad
mileage
que acepte un nuevo valor de kilometraje. Este setter debe:- Permitir la actualización solo si el nuevo kilometraje es mayor que el actual (el kilometraje solo puede aumentar);
- Si el nuevo kilometraje no es válido, registrar
"Invalid mileage update"
y no cambiar el kilometraje actual.
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
- Definir un accesor
get
paramileage
para recuperar el kilometraje actual; - Definir un accesor
set
paramileage
que recibanewMileage
como parámetro; - En el setter, comprobar si
newMileage
es mayor que el kilometraje actual (this.#mileage
); - Si
newMileage
es válido, actualizar#mileage
anewMileage
; - Si
newMileage
no es mayor que el kilometraje actual, registrar"Invalid mileage update"
y no cambiar el kilometraje.
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
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
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
Desafío: Implementar Getters y Setters en una Clase
Desliza para mostrar el menú
Tarea
Se está trabajando dentro de una clase Car
que tiene una propiedad privada #mileage
. La tarea consiste en definir getters y setters para esta propiedad para controlar cómo se accede y modifica.
- Definir Getter para Mileage: Definir un getter para la propiedad
mileage
para recuperar el kilometraje actual; - Definir Setter para Mileage con Validación: Definir un setter para la propiedad
mileage
que acepte un nuevo valor de kilometraje. Este setter debe:- Permitir la actualización solo si el nuevo kilometraje es mayor que el actual (el kilometraje solo puede aumentar);
- Si el nuevo kilometraje no es válido, registrar
"Invalid mileage update"
y no cambiar el kilometraje actual.
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
- Definir un accesor
get
paramileage
para recuperar el kilometraje actual; - Definir un accesor
set
paramileage
que recibanewMileage
como parámetro; - En el setter, comprobar si
newMileage
es mayor que el kilometraje actual (this.#mileage
); - Si
newMileage
es válido, actualizar#mileage
anewMileage
; - Si
newMileage
no es mayor que el kilometraje actual, registrar"Invalid mileage update"
y no cambiar el kilometraje.
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
¡Gracias por tus comentarios!