Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Haaste: Toteuta Getterit ja Setterit Luokassa | JavaScript-luokkien ja Perinnän Hallinta
Edistynyt JavaScript-Osaaminen

bookHaaste: Toteuta Getterit ja Setterit Luokassa

Tehtävä

Työskentelet Car-luokan parissa, jossa on yksityinen #mileage-ominaisuus. Tehtävänäsi on määrittää tälle ominaisuudelle getter- ja setter-metodit, joilla hallitaan sen käyttöä ja muokkaamista.

  1. Määritä getter kilometrilukemalle: Määritä getter mileage-ominaisuudelle nykyisen kilometrilukeman hakemiseksi;
  2. Määritä setter kilometrilukemalle validoinnilla: Määritä setter mileage-ominaisuudelle, joka hyväksyy uuden kilometrilukeman. Tämän setterin tulee:
    • Sallia päivitys vain, jos uusi kilometrilukema on suurempi kuin nykyinen (kilometrilukema voi vain kasvaa);
    • Jos uusi kilometrilukema on virheellinen, tulosta "Invalid mileage update" eikä muuta nykyistä kilometrilukemaa.
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
  • Määritä get-aksessori mileage-ominaisuudelle nykyisen kilometrilukeman hakemiseksi;
  • Määritä set-aksessori mileage-ominaisuudelle, joka ottaa parametrina newMileage;
  • Setterissä tarkista, onko newMileage suurempi kuin nykyinen kilometrilukema (this.#mileage);
  • Jos newMileage on kelvollinen, päivitä #mileage arvoon newMileage;
  • Jos newMileage ei ole suurempi kuin nykyinen kilometrilukema, tulosta "Invalid mileage update" eikä muuta kilometrilukemaa.
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

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 10

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

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

bookHaaste: Toteuta Getterit ja Setterit Luokassa

Pyyhkäise näyttääksesi valikon

Tehtävä

Työskentelet Car-luokan parissa, jossa on yksityinen #mileage-ominaisuus. Tehtävänäsi on määrittää tälle ominaisuudelle getter- ja setter-metodit, joilla hallitaan sen käyttöä ja muokkaamista.

  1. Määritä getter kilometrilukemalle: Määritä getter mileage-ominaisuudelle nykyisen kilometrilukeman hakemiseksi;
  2. Määritä setter kilometrilukemalle validoinnilla: Määritä setter mileage-ominaisuudelle, joka hyväksyy uuden kilometrilukeman. Tämän setterin tulee:
    • Sallia päivitys vain, jos uusi kilometrilukema on suurempi kuin nykyinen (kilometrilukema voi vain kasvaa);
    • Jos uusi kilometrilukema on virheellinen, tulosta "Invalid mileage update" eikä muuta nykyistä kilometrilukemaa.
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
  • Määritä get-aksessori mileage-ominaisuudelle nykyisen kilometrilukeman hakemiseksi;
  • Määritä set-aksessori mileage-ominaisuudelle, joka ottaa parametrina newMileage;
  • Setterissä tarkista, onko newMileage suurempi kuin nykyinen kilometrilukema (this.#mileage);
  • Jos newMileage on kelvollinen, päivitä #mileage arvoon newMileage;
  • Jos newMileage ei ole suurempi kuin nykyinen kilometrilukema, tulosta "Invalid mileage update" eikä muuta kilometrilukemaa.
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

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 10
some-alt