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
Tudo estava claro?
Obrigado pelo seu feedback!
Seção 1. Capítulo 10
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
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
Tudo estava claro?
Obrigado pelo seu feedback!
Seção 1. Capítulo 10