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

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

[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 сделайте изменяемым и уберите его из конструктора, класс при этом перестанет быть иммутабельным.
Вам подходит эта работа?
Похожие работы
Java
Контрольная работа Контрольная
4 Июн в 13:15
77
0 покупок
Java
Контрольная работа Контрольная
3 Июн в 00:52
156
2 покупки
Java
Контрольная работа Контрольная
30 Мая в 13:29
70
0 покупок
Java
Дипломная работа Дипломная
5 Мая в 17:44
106
0 покупок
Другие работы автора
Java
Дипломная работа Дипломная
24 Мар в 22:03
309
1 покупка
Цифровая обработка сигнала
Тест Тест
1 Ноя 2024 в 20:15
429
1 покупка
Правовая статистика
Тест Тест
24 Окт 2024 в 23:25
520
0 покупок
Обучение нейронных систем
Тест Тест
24 Окт 2024 в 21:31
424
8 покупок
Гражданский процесс
Тест Тест
24 Окт 2024 в 14:17
468
0 покупок
Английский язык
Тест Тест
12 Фев 2024 в 20:44
1 236 +1
24 покупки
Русский язык и культура речи
Тест Тест
31 Янв 2024 в 21:02
827
3 покупки
Литература
Тест Тест
31 Янв 2024 в 20:51
837
7 покупок
Высшая математика
Тест Тест
31 Янв 2024 в 20:34
803
3 покупки
Безопасность жизнедеятельности
Тест Тест
31 Янв 2024 в 19:53
1 522
39 покупок
География
Тест Тест
23 Янв 2024 в 02:20
629
9 покупок
Биология
Тест Тест
23 Янв 2024 в 02:00
598
4 покупки
Физкультура и спорт
Тест Тест
23 Янв 2024 в 01:43
866
2 покупки
Высшая математика
Тест Тест
8 Янв 2024 в 22:04
3 188
108 покупок
Правоведение
Тест Тест
8 Янв 2024 в 21:34
1 501
40 покупок
Математическая статистика
Тест Тест
6 Янв 2024 в 00:26
834
15 покупок
Физкультура и спорт
Тест Тест
5 Янв 2024 в 14:25
992 +1
3 покупки
Темы журнала
Показать ещё
Прямой эфир