Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Завдання: Реалізація геттерів і сеттерів у класі | Володіння Класами Та Наслідуванням У JavaScript
Просунуте Володіння JavaScript

bookЗавдання: Реалізація геттерів і сеттерів у класі

Завдання

Ви працюєте з класом Car, який має приватну властивість #mileage. Ваше завдання — визначити гетери та сетери для цієї властивості, щоб контролювати доступ і зміну значення.

  1. Визначити гетер для пробігу: Створіть гетер для властивості mileage, щоб отримувати поточний пробіг;
  2. Визначити сетер для пробігу з валідацією: Створіть сетер для властивості mileage, який приймає нове значення пробігу. Цей сетер повинен:
    • Дозволяти оновлення лише якщо новий пробіг більший за поточний (пробіг може лише збільшуватись);
    • Якщо новий пробіг некоректний, вивести у консоль "Invalid mileage update" і не змінювати поточний пробіг.
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
  • Визначте аксесор get для mileage, щоб отримувати поточний пробіг;
  • Визначте аксесор set для mileage, який приймає параметр newMileage;
  • У сетері перевіряйте, чи newMileage більше за поточний пробіг (this.#mileage);
  • Якщо newMileage коректний, оновіть #mileage до newMileage;
  • Якщо newMileage не більший за поточний пробіг, виведіть у консоль "Invalid mileage update" і не змінюйте пробіг.
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

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 10

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Awesome!

Completion rate improved to 2.22

bookЗавдання: Реалізація геттерів і сеттерів у класі

Свайпніть щоб показати меню

Завдання

Ви працюєте з класом Car, який має приватну властивість #mileage. Ваше завдання — визначити гетери та сетери для цієї властивості, щоб контролювати доступ і зміну значення.

  1. Визначити гетер для пробігу: Створіть гетер для властивості mileage, щоб отримувати поточний пробіг;
  2. Визначити сетер для пробігу з валідацією: Створіть сетер для властивості mileage, який приймає нове значення пробігу. Цей сетер повинен:
    • Дозволяти оновлення лише якщо новий пробіг більший за поточний (пробіг може лише збільшуватись);
    • Якщо новий пробіг некоректний, вивести у консоль "Invalid mileage update" і не змінювати поточний пробіг.
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
  • Визначте аксесор get для mileage, щоб отримувати поточний пробіг;
  • Визначте аксесор set для mileage, який приймає параметр newMileage;
  • У сетері перевіряйте, чи newMileage більше за поточний пробіг (this.#mileage);
  • Якщо newMileage коректний, оновіть #mileage до newMileage;
  • Якщо newMileage не більший за поточний пробіг, виведіть у консоль "Invalid mileage update" і не змінюйте пробіг.
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

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 10
some-alt