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

Раздел
Программирование
Предмет
Просмотров
1 171
Покупок
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 сделайте изменяемым и уберите его из конструктора, класс при этом перестанет быть иммутабельным.
Вам подходит эта работа?
Другие работы автора
Темы журнала
Показать ещё
Прямой эфир