- Объекты и классы
3.1. Переходим к следующему модулю
3.2. Понятие класса и объекта
3.3. Метод, параметры, return
3.4. Статические методы и переменные
3.5. Константы и Enum
3.6. Создание объектов и конструктор
3.7. Инкапсуляция, геттеры и сеттеры
3.8. Копирование объектов
3.9. Внешние библиотеки классов
3.10. Создание JAR-файлов
3.11. Домашняя работа
TASK_3_1: Cat
TASK_3_2: Cat
TASK_3_3: Cat
TASK_3_4: Cat
TASK_3_5: Cat
TASK_3_6: Cat
TASK_3_7: Cat
TASK_3_8: Airport
TASK_3_9: Cat
Примечание
Все задания про кошек связаны между собой. Выполните их в проекте Cat, в директории 03_ObjectsAndClasses вашего репозитория Git.
Цель задания
Научиться создавать объекты класса и вызывать методы объекта.
Что нужно сделать
Создайте 5–7 кошек, вызовите у них различные методы:
- Выведите в консоль вес созданных кошек.
- Покормите двух кошек, после этого распечатайте их вес (убедитесь, что вес изменился).
- Перекормите кошку, чтобы ее статус стал Exploded.
- «Замяукайте» кошку до статуса Dead.
- Отправьте в репозиторий Git коммит с выполненным заданием.
Рекомендации
Чтобы перекормить или «замяукать» кошку, используйте цикл while с условием проверки статуса кошки.
Решение
TASK_3_1: Cat
Критерии оценки
«Зачёт» — выполнены условия задания и отправлена ссылка на коммит в форме ответа.
«Незачёт» — задание не выполнено.
Цель задания
Научиться писать методы класса с возвратом значений и без возврата.
Что нужно сделать
- Создайте в классе Cat метод, который возвращает сумму съеденной еды текущей кошки.
- Создайте в классе Cat метод «Сходить в туалет» pee(), который уменьшает вес кошки и что-нибудь печатает.
- Отправьте в репозиторий Git коммит с выполненным заданием.
Рекомендации
Протестируйте верную работу метода возврата съеденной еды:
- Создайте кошку.
- Покормите кошку кормом весом 150.00 граммов.
- Вызовите метод pee() несколько раз.
- Распечатайте значение съеденного корма, в консоль должно быть выведено значение: 150.00 граммов.
- Отправьте в репозиторий Git коммит с выполненным заданием.
Решение
TASK_3_2: Cat
Критерии оценки
«Зачёт» — выполнены условия задания и отправлена ссылка на коммит в форме ответа.
«Незачёт» — задание не выполнено.
Цель задания
Научиться создавать статическую переменную и управлять ей, используя условный оператор if.
Что нужно сделать
- Создайте у класса Cat статическую переменную count, которая увеличивается на 1, если кошку создали, и убывает на 1, если кошка взорвалась или умерла.
- Создайте статический метод getCount(), который возвращает количество кошек.
- Отправьте в репозиторий Git коммит с выполненным заданием.
Дополнительное задание*
Придумайте способ, который поможет проверить, жива ли кошка, на основе значения её веса. Используя это, запретите неживой кошке есть, пить, ходить в туалет, выполняя проверку веса внутри методов, которые изменяют вес кошки.
Решение
TASK_3_3: Cat
Критерии оценки
«Зачёт» — создана переменная и количество кошек считается верно.
«Незачёт» — задание не выполнено.
Цель задания
Научиться создавать константы в классе и Enum.
Что нужно сделать
- Создайте в классе Cat константы: «количество глаз», «минимальный вес», «максимальный вес».
- Создайте enum Color с окрасами кошек.
- Отправьте в репозиторий Git коммит с выполненным заданием.
Решение
TASK_3_4: Cat
Критерии оценки
«Зачёт» — созданы в классе Cat константы и Enum с окрасом в отдельном файле.
«Незачёт» — задание не выполнено.
Цель задания
Научиться создавать объекты, используя перегруженные конструкторы.
Что нужно сделать
- Сделайте в классе Cat ещё один конструктор, чтобы можно было создать кошку с весом, переданным в конструктор.
- Создайте в главном классе Loader метод генерации котёнка private static Cat getKitten(). Он должен возвращать кошку с весом 1100.00 грамм с помощью конструктора, в который передаём вес кошки. Используйте описание из видеоурока.
- Создайте три объекта класса Cat в методе main(), используя метод getKitten().
- Отправьте в репозиторий Git коммит с выполненным заданием.
Решение
TASK_3_5: Cat
Критерии оценки
«Зачёт» — создан перегруженный конструктор и написан метод создания кошки в Loader.
«Незачёт» — задание не выполнено.
Цель задания
Научиться создавать методы возврата (геттеры) и методы установки значения (сеттеры).
Что нужно сделать
- В классе Car проекта RoadController создайте геттеры и сеттеры для всех переменных класса.
- Создайте в классе Cat переменную, в которой хранится окрас. Напишите геттер и сеттер для окраса.
- Отправьте в репозиторий Git коммит с выполненным заданием.
Рекомендации
К именам методов, возвращающих значения полей типа boolean, добавляют префиксы is/has. Например:
- Метод, возвращающий результат проверки состояния, например «Жива ли кошка?», можно назвать isAlive(). Если кошка жива, ожидаем возврат значения true.
- Метод, возвращающий результат проверки наличия у объекта свойства, например «Есть ли у кошки хвост?», можно назвать hasTail(). Если кошка с хвостом, ожидаем возврат значения true.
Решение
TASK_3_6: Cat
Критерии оценки
«Зачёт» — созданы геттеры и сеттеры в классе Car, а также геттер и сеттер для окраса в классе Cat в соответствии с рекомендациями.
«Незачёт» — задание не выполнено.
Цель задания
Научиться копировать параметры объекта с помощью геттеров и сеттеров.
Что нужно сделать
- Сделайте метод создания «глубокой» копии кошки. Это означает, что все параметры одной кошки равны параметрам другой. Используйте для этого метод копирования или конструктор копирования.
- Отправьте в репозиторий Git коммит с выполненным заданием.
Рекомендации
Читайте параметры первого объекта геттерами и переносите их в другой с помощью сеттеров.
Решение
TASK_3_7: Cat
Критерии оценки
«Зачёт» — написан метод копирования или конструктор копирования.
«Незачёт» — задание не выполнено.
Цель задания
Научиться подключать внешние библиотеки в проект с помощью среды разработки IDEA и использовать классы библиотеки.
Что нужно сделать
Повторите действия из видео:
- создайте новый проект,
- подключите к нему библиотеку airport.jar,
- получите список самолётов,
- распечатайте количество (число) самолётов в аэропорту,
- отправьте в репозиторий Git коммит с выполненным заданием.
Решение
TASK_3_8: Airport
Критерии оценки
«Зачёт» — при запуске проекта в консоль выводится число самолётов в аэропорту.
«Незачёт» — задание не выполнено.
Цель задания
Научиться создавать исполняемый файл jar из своего проекта.
Что нужно сделать
- Упакуйте приложение с экспериментами над кошками в JAR-файл. Убедитесь, что он запускается.
- Приложите jar-файл к вашему ответу. Отправлять jar-файл в репозиторий не требуется.
Решение
TASK_3_9: Cat
Критерии оценки
«Зачёт» — прислан файл jar.
«Незачёт» — задание не выполнено.