Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Desafio: Implementar Getters e Setters em uma Classe | Dominando Classes e Herança em JavaScript
Domínio Avançado de JavaScript

bookDesafio: 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.

  1. Definir Getter para Mileage: Defina um getter para a propriedade mileage para recuperar a quilometragem atual;
  2. Definir Setter para Mileage com Validação: Defina um setter para a propriedade mileage que 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.
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 um acessor get para mileage para recuperar a quilometragem atual;
  • Definir um acessor set para mileage que receba newMileage como parâmetro;
  • No setter, verificar se newMileage é maior que a quilometragem atual (this.#mileage);
  • Se newMileage for válido, atualizar #mileage para newMileage;
  • Se newMileage não for maior que a quilometragem atual, registrar "Invalid mileage update" e não alterar a quilometragem.
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

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 10

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Awesome!

Completion rate improved to 2.22

bookDesafio: 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.

  1. Definir Getter para Mileage: Defina um getter para a propriedade mileage para recuperar a quilometragem atual;
  2. Definir Setter para Mileage com Validação: Defina um setter para a propriedade mileage que 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.
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 um acessor get para mileage para recuperar a quilometragem atual;
  • Definir um acessor set para mileage que receba newMileage como parâmetro;
  • No setter, verificar se newMileage é maior que a quilometragem atual (this.#mileage);
  • Se newMileage for válido, atualizar #mileage para newMileage;
  • Se newMileage não for maior que a quilometragem atual, registrar "Invalid mileage update" e não alterar a quilometragem.
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

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 10
some-alt