Задача работа с классами19.12.2022, 02:13. Показов 6900. Ответов 4
Здравствуйте!
Подскажите, где ошибка в решении след. задачи: Задача1. Все печатные издания имеют название, год издания, состоят из определённого количества страниц, а ещё могут портиться. 1. Создайте базовый класс PrintEditionItem со свойствами: name, releaseDate, pagesCount, state, type. Конструктор класса должен принимать название (name), дату выпуска (releaseDate) и количество страниц (pagesCount) в качестве аргумента. Состояние (state) по умолчанию установите равным 100, тип type пока должен быть равен null. 2. Испорченное издание можно подклеить и этим улучшить его состояние. Создайте метод fix(), увеличивающий state в полтора раза. Метод не должен принимать аргументов. 3. Нельзя улучшить новое издание и бесполезно подклеивать полностью уничтоженное. Создайте «сеттер» для свойства state, принимающий в качестве аргумента новое состояние печатного издания (число). Если новое состояние меньше 0, «сеттер» должен записать в свойство state значение 0. Если новое состояние больше 100, должно быть записано значение 100. В остальных случаях в свойство state записывается переданное в «сеттер» значение. 4. Создайте «геттер», который читает значение свойства state. Создайте класс Magazine, который будет наследоваться от класса PrintEditionItem. Конструктор класса должен принимать такие же параметры, как и класс-родитель. От базового печатного издания журнал отличается только типом. Значение свойства type равно "magazine". 5. Создайте класс Book, наследующийся от класса PrintEditionItem. Конструктор класса должен принимать такие же параметры, как и класс-родитель, а также имя автора книги author. Значение свойства type равно "book". 6. Создайте классы NovelBook для романов, FantasticBook для фантастических произведений и DetectiveBook для детективов, наследующиеся от класса Book. Значения свойства type равны "novel", "fantastic" и "detective" соответственно. Задача 2. (связана с задачей 1) Следующая задача — подготовить библиотеку к работе в цифровом режиме, то есть реализовать возможности хранить книги, выдавать их читателям и принимать обратно. 1. Создайте класс Library со свойствами: name, books. Конструктор класса должен принимать название библиотеки name (строка). Значением свойства books должен быть пустой массив. 2. Реализуйте метод addBook(book), который будет в качестве аргумента принимать объект (книгу или журнал). Метод должен добавлять книгу в хранилище books, только если состояние state книги больше 30. 3. Создайте метод findBookBy(type, value), который в качестве аргумента будет принимать ключ, по которому идёт поиск (тип, автор, название, год выпуска и пр.) и искомое значение. Метод должен возвращать книгу в случае успеха и null, если книга не найдена. 4. Создайте метод giveBookByName(bookName), который будет в качестве аргумента принимать название книги. Если запрошенная книга найдена, метод должен удалять книгу из хранилища books и возвращать её. Если книга не была найдена, метод должен возвращать null. У меня большего всего трудностей с задачей 2. Особенно п.3 и п.4. Я вроде представляю, как решить, но не могу это нормально в код написать. Я же правильно понимаю по з.2, что конструктор класса Library в качестве аргумента должен принимать только название библиотеки. Свойство books не должно передаваться в конструктов в качестве аргумента, его надо создать в конструкторе со значением пустого массива. В это свойство методом addBook будут передаваться экземпляры класса PrintEditionItem или его наследников, то есть печатные издания. По пн.3. Аргумент type в этом методе - это одно из свойств экземпляров класса PrintEditionItem или его наследников.Нужно обращаться к свойствам объекта, которые переданы как строка - в квадратных скобках. По пн.4. В метод giveBookByName передается название книги, которое у нас лежит в свойстве name книги, а сама книга является элементом массива books. Пример использования (по заданию)
Ниже мой вариант решения, подскажите, в чем я ошиблась(
Задача №1 создание печатного издания починка почти целого печатного издания (ограничение сеттером state) починка печатного издания геттер для свойства state сеттер для свойства state создание объекта Magazine создание объекта Book создание объекта NovelBook создание объекта FantasticBook создание объекта DetectiveBook Задача №2 создание библиотеки добавление книги поиск книги выдача книги В консоле 2019 main.js:5 100 main.js:7 100 main.js:9 undefined main.js:11 10 main.js:13 10 task.js:89 Uncaught ReferenceError: state is not defined at Library.addBook (task.js:89:3) at main.js:17:9 addBook @ task.js:89 (анонимная) @ main.js:17
0
|
|||||||||||
| 19.12.2022, 02:13 | |
|
Ответы с готовыми решениями:
4
Работа с классами
Работа с классами и пересечение их между собой (задача о городах и поездах) |
|
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
|
||||||||||||||||||||||||||||||||||||
| 19.12.2022, 12:27 | ||||||||||||||||||||||||||||||||||||
Сообщение было отмечено Anna_Batuk как решение
Решение
Отсутствует присваивание.
type, а здесь вы объявляете ещё одно свойство _type вместо перезаписывания старого.
type было указано некорректно.
1
|
||||||||||||||||||||||||||||||||||||
| 19.12.2022, 15:50 [ТС] | |
|
Спасибо! Все исправила
0
|
|
|
0 / 0 / 0
Регистрация: 07.08.2024
Сообщений: 1
|
||||||
| 07.08.2024, 14:27 | ||||||
Сейчас выдает ошибку "Maximum call stack size exceeded" на строку кода "else {this.state = number}" - это 18 строка Подскажите, что еще не так..?
0
|
||||||
|
3808 / 1646 / 428
Регистрация: 14.03.2022
Сообщений: 4,096
|
|||||||
| 07.08.2024, 16:26 | |||||||
https://learn.javascript.ru/pr... ry-settery
0
|
|||||||
| 07.08.2024, 16:26 | |
|
Помогаю со студенческими работами здесь
5
задача , с классами и классами наследниками Работа с классами и классами наследниками Задача с классами Задача с классами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|