Задача работа с классами19.12.2022, 02:13. Показов 7049. Ответов 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
|
||||||
|
3839 / 1688 / 431
Регистрация: 14.03.2022
Сообщений: 4,293
|
|||||||
| 07.08.2024, 16:26 | |||||||
https://learn.javascript.ru/pr... ry-settery
0
|
|||||||
| 07.08.2024, 16:26 | |
|
Помогаю со студенческими работами здесь
5
задача , с классами и классами наследниками Работа с классами и классами наследниками Задача с классами Задача с классами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|