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

Раздел
Программирование
Предмет
Просмотров
828
Покупок
5
Антиплагиат
70% Антиплагиат.РУ (модуль - Интернет Free)
Размещена
1 Апр 2023 в 23:08
ВУЗ
Skillbox
Курс
1 курс
Стоимость
590 ₽
Демо-файлы   
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 Кбайт 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
Задача Задача
13 Дек в 22:03
19 +3
0 покупок
Java
Задача Задача
2 Окт в 16:04
48 +1
0 покупок
Java
Задача Задача
13 Июл в 14:32
92 +1
0 покупок
Другие работы автора
Цифровая обработка сигнала
Тест Тест
1 Ноя в 20:15
71 +5
0 покупок
Правовая статистика
Тест Тест
24 Окт в 23:25
58 +1
0 покупок
Обучение нейронных систем
Тест Тест
24 Окт в 21:31
60
1 покупка
Гражданский процесс
Тест Тест
24 Окт в 14:17
116
0 покупок
Английский язык
Тест Тест
12 Фев в 20:44
620 +5
12 покупок
Русский язык и культура речи
Тест Тест
31 Янв в 21:02
405 +1
1 покупка
Литература
Тест Тест
31 Янв в 20:51
486 +1
7 покупок
Высшая математика
Тест Тест
31 Янв в 20:34
440 +3
3 покупки
Безопасность жизнедеятельности
Тест Тест
31 Янв в 19:53
829 +5
26 покупок
География
Тест Тест
23 Янв в 02:20
293 +3
8 покупок
Биология
Тест Тест
23 Янв в 02:00
267 +1
2 покупки
Физкультура и спорт
Тест Тест
23 Янв в 01:43
522 +2
2 покупки
Высшая математика
Тест Тест
8 Янв в 22:04
2 072 +9
83 покупки
Правоведение
Тест Тест
8 Янв в 21:34
966
35 покупок
Математическая статистика
Тест Тест
6 Янв в 00:26
349 +4
7 покупок
Физкультура и спорт
Тест Тест
5 Янв в 14:25
500 +3
2 покупки
Русский язык и культура речи
Тест Тест
3 Янв в 17:17
932 +6
28 покупок
Темы журнала
Показать ещё
Прямой эфир