[Skillbox] Java-разработчик - модуль 5 - Объекты и классы. Часть 2. Инкапсуляция
Состав работы
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Работа представляет собой zip архив с файлами (распаковать онлайн), которые открываются в программах:
- Microsoft Excel
- Программа для просмотра изображений
Описание
[Skillbox] Java-разработчик - модуль 5 - Объекты и классы. Часть 2. Инкапсуляция
Задача 1 - Создайте новый проект Encapsulation и в нём класс Elevator
Задача 2 - Продолжайте работу в проекте Encapsulation, в котором вы выполняли предыдущее задание. Создайте в этом проекте иммутабельный класс для хранения информации о грузах.
Задача 3 - Создайте POJO-класс Country.
Задача 4 - Выберите любой объект реального мира с тремя-четырьмя свойствами и создайте для него POJO-класс.
Задача 5 - Создайте иммутабельный (неизменяемый) класс Book.
Задача 6 - Модифицируйте класс Product, разобранный в видеоуроке.
Задача 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, который будет использоваться для хранения данных о странах, со следующими полями:
Название.
Численность населения.
Площадь в квадратных километрах.
Название столицы.
Наличие выхода к морю.
Создайте в этом классе:
Конструктор с одним параметром — названием страны.
Методы-геттеры для всех полей класса.
Методы-сеттеры для всех полей класса.
Имена полей и их типы установите самостоятельно так, чтобы они были понятными и соответствовали хранящимся в них данным.
Задание 4
Что нужно сделать
Выберите любой объект реального мира с тремя-четырьмя свойствами и создайте для него POJO-класс, содержащий:
Конструктор с одним-двумя основными свойствами.
Методы-геттеры и методы-сеттеры для всех свойств объектов этого класса.
Задание 5
Что нужно сделать
Создайте иммутабельный (неизменяемый) класс Book для хранения информации о книге, содержащий поля:
название,
автор,
количество страниц,
номер ISBN.
Задание 6
Что нужно сделать
Модифицируйте класс Product, разобранный в видеоуроке, следующим образом:
добавьте в класс неизменяемое поле barCode (штрихкод);
поле price сделайте изменяемым и уберите его из конструктора, класс при этом перестанет быть иммутабельным.
Цель
Опробовать принцип инкапсуляции на практике.
Научиться самостоятельно реализовывать в классах методы и переменные с использованием принципа инкапсуляции.
Что нужно сделать
Папка в репозитории не содержит готового проекта, вам необходимо создать проект с нуля. Создайте новый проект 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, который будет использоваться для хранения данных о странах, со следующими полями:
Название.
Численность населения.
Площадь в квадратных километрах.
Название столицы.
Наличие выхода к морю.
Создайте в этом классе:
Конструктор с одним параметром — названием страны.
Методы-геттеры для всех полей класса.
Методы-сеттеры для всех полей класса.
Имена полей и их типы установите самостоятельно так, чтобы они были понятными и соответствовали хранящимся в них данным.
Задание 4
Что нужно сделать
Выберите любой объект реального мира с тремя-четырьмя свойствами и создайте для него POJO-класс, содержащий:
Конструктор с одним-двумя основными свойствами.
Методы-геттеры и методы-сеттеры для всех свойств объектов этого класса.
Задание 5
Что нужно сделать
Создайте иммутабельный (неизменяемый) класс Book для хранения информации о книге, содержащий поля:
название,
автор,
количество страниц,
номер ISBN.
Задание 6
Что нужно сделать
Модифицируйте класс Product, разобранный в видеоуроке, следующим образом:
добавьте в класс неизменяемое поле barCode (штрихкод);
поле price сделайте изменяемым и уберите его из конструктора, класс при этом перестанет быть иммутабельным.
Похожие материалы
[Skillbox] Java-разработчик - модуль 4 - Объекты и классы. Часть 1. Методы и классы
StudentHelp
: 1 апреля 2023
[Skillbox] Java-разработчик - модуль 4 - Объекты и классы. Часть 1. Методы и классы
Решение задач на модуль 4 - Объекты и классы. Часть 1. Методы и классы
Задание 1 - Arithmetic
Задание 2 - Допишите в класс Basket (проект в репозитории ObjectsAndMethods или, если у вас его нет, скачайте архив, приложенный к заданию):
Переменную “totalWeight”..........
..................
..................
400 руб.
[Skillbox] Java-разработчик - ВСЕ РЕШЕНИЯ НА ВСЕ МОДУЛИ !!!
StudentHelp
: 20 декабря 2021
[Skillbox] Java-разработчик - ВСЕ РЕШЕНИЯ НА ВСЕ МОДУЛИ
Представлены все решения на все модули курса Java - разработчик . Сдано в 2021 году!
Модули:
03_ObjectsAndClasses
04_NumbersStringsAndDates
05_ArraysAndCollections
05_StaticFinal
06_InheritanceAndPolymorphism
07_AdvancedOOPFeatures
07_NumbersAndDates
08_ExceptionsDebuggingAndTesting
09_FilesAndNetwork
10_SQLAndHibernate
11_Multithreading
12_SpringBootWebDevelopment
13_NoSQL
15_BigData
16_Performance
18_Algorithms
19_Data
2000 руб.
[Skillbox] Java-разработчик - модуль 6 - Объекты и классы. Часть 3. Static, константы и enum
StudentHelp
: 3 апреля 2023
[Skillbox] Java-разработчик - модуль 6 - Объекты и классы. Часть 3. Static, константы и enum
Задание 1 - Внесите следующие изменения в класс Basket:
Добавьте две статические переменные для хранения общей стоимости и общего количества всех товаров во всех корзинах.
2.......................
3.......................
Задание 2 - Создайте новый проект и класс Computer со свойствами-комплектующими. Класс Computer должен иметь методы, позволяющие менять его комплектующие с помощью сеттеров: проце
750 руб.
[Skillbox] Java-разработчик - модуль 9 - Строки
StudentHelp
: 11 апреля 2023
[Skillbox] Java-разработчик - модуль 9 - Строки
Задание 1 - SequentialWordsNumbers
Задание 2 - SplitText
Задание 3 - PhoneCleanerRegex
Задание 4 - TotalEarningsCalculator
Задание 5 - FullNameFormatter
Задание 6 -TotalEarningsCalculatorRegex
Задание 7 - FullNameFormatterRegex
720 руб.
[Skillbox] Java-разработчик - модуль 7 - Примитивы
StudentHelp
: 5 апреля 2023
[Skillbox] Java-разработчик - модуль 7 - Примитивы
Задача 1 - Запустите код проекта IntOrInteger, найдите ошибку и исправьте класс Container.
Задача 2 - Напишите в этом же проекте код, который с помощью цикла и преобразования чисел в символы найдёт все числовые коды букв русского алфавита — заглавных и строчных, в том числе буквы Ё.
390 руб.
[Skillbox] Java-разработчик - модуль 8 - числа и строки
StudentHelp
: 8 апреля 2023
[Skillbox] Java-разработчик - модуль 8 - числа и строки
Задача 1 - TrucksAndContainers
Задача 2 - Birthdays
Задача 3 - GeometryCalculator
Задача 4 - Periods
750 руб.
[Skillbox] Java-разработчик - модуль 2 -синтаксис языка часть 2- решение задач
StudentHelp
: 1 апреля 2023
[Skillbox] Java-разработчик - модуль 3 -синтаксис языка часть 2 - решение задач.
Решение задач на модуль 3 - синтаксис языка часть 2 - ( 2022 - 2023 год обучения).
Задание 1 - FactorialCalculator.
Задание 2 - ForCycle.
Задание 3 - SwimmingPool.
Задание 4- GuessTheNumber.
400 руб.
Skillbox. Итоговый проект курса «Поисковый движок». Java-разработчик.
StudentHelp
: 25 марта 2025
Skillbox. Java-разработчик. Итоговый проект курса «Поисковый движок»
Данный проект сдан в 2021 году, но актуален по сей день.
Проект включает описание самого, проекта, техническую спецификацию, Т.З, критерий оценивания, а также описание подключение и создание базы и таблиц, а также скрипт для создания самих таблиц.
В стоимость входит поддержка и исправление замечаний от куратора на всем пути до сдачи проекта.
4000 руб.
Другие работы
Анализ кредитоспособности заемщика на примере Волгоградского филиала АКБ Московский Индустриальный Банк
evelin
: 24 октября 2013
Выпускная квалификационная работа посвящена проблемам оценки кредитоспособности заемщика на примере Волгоградского филиала АКБ “Московский Индустриальный Банк”.
В главе 1 показана методика рассмотрения кредитной заявки и собеседования с заемщиком, дана оценка основных источников информации для анализа, а также проанализирован зарубежный опыт определения характера заемщика и его кредитоспособности.
Глава 2 содержит методику и пример оценки финансового положения заемщика, основное внимание удел
45 руб.
Опирание междуэтажного перекрытия чертеж в компас
Laguz
: 13 декабря 2025
Узел опирания междуэтажного перекрытия
100 руб.
Теплотехника Перм. гос. техн. ун-т Задача 1 Вариант 44
Z24
: 4 ноября 2025
Газовая смесь массой m, имеющая начальную плотность 0,9 м³/кг, в ходе политропного процесса сжимается от давления 0,1 МПа до давления рк. При этом её температура достигает значения Тк.
Определить:
— удельную газовую постоянную смеси;
— показатель политропы сжатия;
— подводимую теплоту, изменение внутренней энергии и энтальпии, а также работу, совершенную газом;
— изобразить процесс сжатия на обобщенных p-υ и T-s диаграммах.
Принимаемые допущения:
— температурной зависимостью
350 руб.
Психологічні особливості мотиваційної сфери учнів
Slolka
: 15 октября 2013
Актуальність дослідження. Інтенсивний розвиток українського суспільства, реформаційні процеси в усіх сферах його життєдіяльності і розширення інформаційного простору вимагають від підростаючого покоління вміння орієнтуватися у швидкоплинному потоці інформації та ефективно засвоювати нові знання. Тому в ХХI столітті пріоритетним завданням у трансформації освітнього соціуму має бути активізація суб’єктної позиції учнів на навчання і забезпечення високої результативності їх навчальної діяльності.
5 руб.