[Skillbox] Java-разработчик - модуль 5 - Объекты и классы. Часть 2. Инкапсуляция

Раздел
Программирование
Предмет
Просмотров
539
Покупок
4
Антиплагиат
70% Антиплагиат.РУ (модуль - Интернет Free)
Размещена
1 Апр 2023 в 23:08
ВУЗ
Skillbox
Курс
1 курс
Стоимость
500 ₽
Демо-файлы   
5
png
Car Car
59.6 Кбайт 59.6 Кбайт
png
Product Product
69.7 Кбайт 69.7 Кбайт
png
Encapsulation Encapsulation
82.3 Кбайт 82.3 Кбайт
png
Book Book
77 Кбайт 77 Кбайт
png
Pojo Country Pojo Country
79.7 Кбайт 79.7 Кбайт
Файлы работы   
1
Каждая работа проверяется на плагиат, на момент публикации уникальность составляет не менее 40% по системе проверки eTXT.
zip
Объекты и классы. Часть 2. Инкапсуляция
390.9 Кбайт 500 ₽
Описание

[Skillbox] Java-разработчик - модуль 5 - Объекты и классы. Часть 2. Инкапсуляция

Задача 1 - Создайте новый проект Encapsulation и в нём класс Elevator

Задача 2 - Продолжайте работу в проекте Encapsulation, в котором вы выполняли предыдущее задание. Создайте в этом проекте иммутабельный класс для хранения информации о грузах.

Задача 3 - Создайте POJO-класс Country.

Задача 4 - Выберите любой объект реального мира с тремя-четырьмя свойствами и создайте для него POJO-класс.

Задача 5 - Создайте иммутабельный (неизменяемый) класс Book.

Задача 6 - Модифицируйте класс Product, разобранный в видеоуроке.

Оглавление

Задание 1

Цель

  • Опробовать принцип инкапсуляции на практике.
  • Научиться самостоятельно реализовывать в классах методы и переменные с использованием принципа инкапсуляции.

Что нужно сделать

Папка в репозитории не содержит готового проекта, вам необходимо создать проект с нуля. Создайте новый проект Encapsulation и в нём класс Elevator, эмулирующий работу пассажирского лифта. В классе создайте:

  • Переменные currentFloor (текущий этаж), minFloor и maxFloor (минимальный и максимальный этажи). Тип переменных — int.
  • Конструктор с двумя параметрами minFloor и maxFloor, сохраняющий эти параметры в соответствующих переменных класса.
  • Значение переменной currentFloor изначально должно быть равно 1.
  • Метод getCurrentFloor, возвращающий текущий этаж, на котором находится лифт.
  • Метод moveDown, перемещающий лифт на один этаж вниз (уменьшающий значение переменной currentFloor на единицу).
  • Метод moveUp, перемещающий лифт на один этаж вверх.
  • Метод move(int floor), перемещающий лифт на заданный в параметре этаж, если он задан верно. Если параметр у метода задан неверно, ничего не делать и выводить в консоль сообщение об ошибке. Этот метод может перемещать лифт только последовательно, по одному этажу, с помощью циклов и методов moveUp и moveDown, и он должен выводить в консоль текущий этаж после каждого перемещения между этажами.

Создайте в этом же проекте класс Main с методом main и напишите в нём следующий код:

Elevator elevator = new Elevator(-3, 26);

while (true) {

System.out.print("Введите номер этажа: ");

int floor = new Scanner (System.in).nextInt();

elevator.move(floor);

}

Этот код поможет вам протестировать созданный класс Elevator: он будет создавать лифт и в консоли запрашивать этаж, на который нужно переместить лифт, после чего вызывать у него метод move с указанием полученного из консоли этажа. Запустите получившийся код и убедитесь, что он работает корректно.

Критерии оценки работы

Принято:

  • Выполнены все указанные в заданиях требования по написанию кода в классе Elevator.
  • Все методы классов работают без ошибок, код компилируется и запускается.
  • В результате выполнения кода для тестирования в консоль выводится:
  • сообщение об ошибке, если в консоль введён номер этажа меньше −3 или больше 26;
  • последовательно все номера этажей, если введён этаж, отличный от текущего;
  • ничего, если в консоль введён номер этажа, на котором лифт находится сейчас.

На доработку: задание не выполнено, выполнено неточно либо частично.


Задание 2

Цель

Научиться реализовывать механизм копирования объектов, в том числе объектов иммутабельных классов.

Что нужно сделать

Продолжайте работу в проекте Encapsulation, в котором вы выполняли предыдущее задание. Создайте в этом проекте иммутабельный класс для хранения информации о грузах, передаваемых в курьерскую службу. Название класса придумайте самостоятельно.

Создайте у класса следующие поля:

  • габариты;
  • масса;
  • адрес доставки;
  • свойство — можно ли переворачивать;
  • регистрационный номер (может содержать буквы);
  • является ли груз хрупким.

Названия полей придумайте самостоятельно таким образом, чтобы по ним было понятно, что в них находится. Типы полей задайте в соответствии с данными, которые в них содержатся.

Габариты — ширина, высота и длина — должны храниться в отдельном иммутабельном классе Dimensions. Создайте класс Dimensions с соответствующими полями и реализуйте в нём метод вычисления объёма груза (название метода придумайте самостоятельно).

Реализуйте в классе методы, дающие возможность изменять адрес доставки, габариты и массу груза без изменения исходного объекта путём создания его копии.

Напишите в методе main класса Main дополнительный код, который будет создавать экземпляр класса (объект) груза и его копии при изменении тех или иный полей. Напишите также код, который позволит проверить, что копирование действительно происходит.


Задание 3

Что нужно сделать

Создайте POJO-класс Country, который будет использоваться для хранения данных о странах, со следующими полями:

  1. Название.
  2. Численность населения.
  3. Площадь в квадратных километрах.
  4. Название столицы.
  5. Наличие выхода к морю.


Создайте в этом классе:

  • Конструктор с одним параметром — названием страны.
  • Методы-геттеры для всех полей класса.
  • Методы-сеттеры для всех полей класса.


Имена полей и их типы установите самостоятельно так, чтобы они были понятными и соответствовали хранящимся в них данным.


Задание 4

Что нужно сделать

Выберите любой объект реального мира с тремя-четырьмя свойствами и создайте для него POJO-класс, содержащий:

  • Конструктор с одним-двумя основными свойствами.
  • Методы-геттеры и методы-сеттеры для всех свойств объектов этого класса.


Задание 5

Что нужно сделать

Создайте иммутабельный (неизменяемый) класс Book для хранения информации о книге, содержащий поля:

  • название,
  • автор,
  • количество страниц,
  • номер ISBN.


Задание 6

Что нужно сделать

Модифицируйте класс Product, разобранный в видеоуроке, следующим образом:

  • добавьте в класс неизменяемое поле barCode (штрихкод);
  • поле price сделайте изменяемым и уберите его из конструктора, класс при этом перестанет быть иммутабельным.
Вам подходит эта работа?
Другие работы автора
Английский язык
Тест Тест
12 Фев в 20:44
69
0 покупок
Русский язык и культура речи
Тест Тест
31 Янв в 21:02
112 +2
0 покупок
Литература
Тест Тест
31 Янв в 20:51
124 +2
2 покупки
Высшая математика
Тест Тест
31 Янв в 20:34
135 +2
1 покупка
Безопасность жизнедеятельности
Тест Тест
31 Янв в 19:53
178 +2
4 покупки
География
Тест Тест
23 Янв в 02:20
118 +2
4 покупки
Биология
Тест Тест
23 Янв в 02:00
102
1 покупка
Физкультура и спорт
Тест Тест
23 Янв в 01:43
173 +4
2 покупки
Высшая математика
Тест Тест
8 Янв в 22:04
808 +9
41 покупка
Правоведение
Тест Тест
8 Янв в 21:34
234
14 покупок
Математическая статистика
Тест Тест
6 Янв в 00:26
148 +2
6 покупок
Физкультура и спорт
Тест Тест
5 Янв в 14:25
139 +1
2 покупки
Русский язык и культура речи
Тест Тест
3 Янв в 17:17
466
20 покупок
Основы программирования
Тест Тест
1 Янв в 19:48
206 +7
1 покупка
Управление качеством
Тест Тест
1 Янв в 12:05
81 +2
4 покупки
Английский язык
Тест Тест
30 Дек 2023 в 22:20
170 +1
2 покупки
История
Тест Тест
30 Дек 2023 в 22:06
496 +3
11 покупок
Темы журнала
Показать ещё
Прямой эфир