Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Desafío: Implementar Getters y Setters en una Clase | Dominio de las Clases e Herencia en JavaScript
Maestría Avanzada en JavaScript

bookDesafí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.

  1. Definir Getter para Mileage: Definir un getter para la propiedad mileage para recuperar el kilometraje actual;
  2. 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.
123456789101112131415161718192021222324252627
class 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
copy
  • Definir un accesor get para mileage para recuperar el kilometraje actual;
  • Definir un accesor set para mileage que reciba newMileage como parámetro;
  • En el setter, comprobar si newMileage es mayor que el kilometraje actual (this.#mileage);
  • Si newMileage es válido, actualizar #mileage a newMileage;
  • Si newMileage no es mayor que el kilometraje actual, registrar "Invalid mileage update" y no cambiar el kilometraje.
123456789101112131415161718192021222324252627
class 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
copy

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 10

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Awesome!

Completion rate improved to 2.22

bookDesafí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.

  1. Definir Getter para Mileage: Definir un getter para la propiedad mileage para recuperar el kilometraje actual;
  2. 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.
123456789101112131415161718192021222324252627
class 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
copy
  • Definir un accesor get para mileage para recuperar el kilometraje actual;
  • Definir un accesor set para mileage que reciba newMileage como parámetro;
  • En el setter, comprobar si newMileage es mayor que el kilometraje actual (this.#mileage);
  • Si newMileage es válido, actualizar #mileage a newMileage;
  • Si newMileage no es mayor que el kilometraje actual, registrar "Invalid mileage update" y no cambiar el kilometraje.
123456789101112131415161718192021222324252627
class 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
copy

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 10
some-alt