Desafio: Implementar Getters e Setters em uma Classe
Tarefa
Você está trabalhando dentro de uma classe Car que possui uma propriedade privada #mileage. Sua tarefa é definir getters e setters para essa propriedade a fim de controlar como ela é acessada e modificada.
- Definir Getter para Mileage: Defina um getter para a propriedade
mileagepara recuperar a quilometragem atual; - Definir Setter para Mileage com Validação: Defina um setter para a propriedade
mileageque aceite um novo valor de quilometragem. Este setter deve:- Permitir a atualização apenas se a nova quilometragem for maior que a quilometragem atual (a quilometragem só pode aumentar);
- Se a nova quilometragem for inválida, registrar
"Invalid mileage update"e não alterar a quilometragem atual.
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 um acessor
getparamileagepara recuperar a quilometragem atual; - Definir um acessor
setparamileageque recebanewMileagecomo parâmetro; - No setter, verificar se
newMileageé maior que a quilometragem atual (this.#mileage); - Se
newMileagefor válido, atualizar#mileageparanewMileage; - Se
newMileagenão for maior que a quilometragem atual, registrar"Invalid mileage update"e não alterar a quilometragem.
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
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
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
Desafio: Implementar Getters e Setters em uma Classe
Deslize para mostrar o menu
Tarefa
Você está trabalhando dentro de uma classe Car que possui uma propriedade privada #mileage. Sua tarefa é definir getters e setters para essa propriedade a fim de controlar como ela é acessada e modificada.
- Definir Getter para Mileage: Defina um getter para a propriedade
mileagepara recuperar a quilometragem atual; - Definir Setter para Mileage com Validação: Defina um setter para a propriedade
mileageque aceite um novo valor de quilometragem. Este setter deve:- Permitir a atualização apenas se a nova quilometragem for maior que a quilometragem atual (a quilometragem só pode aumentar);
- Se a nova quilometragem for inválida, registrar
"Invalid mileage update"e não alterar a quilometragem atual.
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 um acessor
getparamileagepara recuperar a quilometragem atual; - Definir um acessor
setparamileageque recebanewMileagecomo parâmetro; - No setter, verificar se
newMileageé maior que a quilometragem atual (this.#mileage); - Se
newMileagefor válido, atualizar#mileageparanewMileage; - Se
newMileagenão for maior que a quilometragem atual, registrar"Invalid mileage update"e não alterar a quilometragem.
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
Obrigado pelo seu feedback!