Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Sfida: Implementare Getter e Setter in una Classe | Padronanza delle Classi e dell'Ereditarietà in JavaScript
Padronanza Avanzata di JavaScript

bookSfida: Implementare Getter e Setter in una Classe

Compito

Si sta lavorando all'interno di una classe Car che possiede una proprietà privata #mileage. L'obiettivo è definire getter e setter per questa proprietà per controllarne l'accesso e la modifica.

  1. Definizione del Getter per Mileage: Definire un getter per la proprietà mileage per recuperare il valore attuale del chilometraggio;
  2. Definizione del Setter per Mileage con Validazione: Definire un setter per la proprietà mileage che accetti un nuovo valore di chilometraggio. Questo setter deve:
    • Consentire l'aggiornamento solo se il nuovo chilometraggio è maggiore di quello attuale (il chilometraggio può solo aumentare);
    • Se il nuovo chilometraggio non è valido, registrare "Invalid mileage update" e non modificare il valore attuale.
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
  • Definire un accessore get per mileage per recuperare il chilometraggio attuale;
  • Definire un accessore set per mileage che accetti newMileage come parametro;
  • Nel setter, verificare se newMileage è maggiore del chilometraggio attuale (this.#mileage);
  • Se newMileage è valido, aggiornare #mileage con newMileage;
  • Se newMileage non è maggiore del chilometraggio attuale, registrare "Invalid mileage update" e non modificare il chilometraggio.
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

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 10

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 2.22

bookSfida: Implementare Getter e Setter in una Classe

Scorri per mostrare il menu

Compito

Si sta lavorando all'interno di una classe Car che possiede una proprietà privata #mileage. L'obiettivo è definire getter e setter per questa proprietà per controllarne l'accesso e la modifica.

  1. Definizione del Getter per Mileage: Definire un getter per la proprietà mileage per recuperare il valore attuale del chilometraggio;
  2. Definizione del Setter per Mileage con Validazione: Definire un setter per la proprietà mileage che accetti un nuovo valore di chilometraggio. Questo setter deve:
    • Consentire l'aggiornamento solo se il nuovo chilometraggio è maggiore di quello attuale (il chilometraggio può solo aumentare);
    • Se il nuovo chilometraggio non è valido, registrare "Invalid mileage update" e non modificare il valore attuale.
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
  • Definire un accessore get per mileage per recuperare il chilometraggio attuale;
  • Definire un accessore set per mileage che accetti newMileage come parametro;
  • Nel setter, verificare se newMileage è maggiore del chilometraggio attuale (this.#mileage);
  • Se newMileage è valido, aggiornare #mileage con newMileage;
  • Se newMileage non è maggiore del chilometraggio attuale, registrare "Invalid mileage update" e non modificare il chilometraggio.
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

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 10
some-alt