[Skillbox] Java-разработчик - модуль 13 - Наследование. 2023 год.
Состав работы
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Работа представляет собой zip архив с файлами (распаковать онлайн), которые открываются в программах:
- Программа для просмотра изображений
Описание
[Skillbox] Java-разработчик - модуль 13 - Наследование. 2023 год.
Задача 1 - BankAccount
Задача 2 - BankAccount(модификаторы доступа).
Задача 3 - Client
Задача 4 - Company
Задача 1 - BankAccount
Задача 2 - BankAccount(модификаторы доступа).
Задача 3 - Client
Задача 4 - Company
Дополнительная информация
Задача №1
Цель
Освоить на практике наследование классов.
Что нужно сделать
Выполните задание в директории master/src/main/java/practice.
В проекте найдите класс BankAccount и унаследованные от него классы CardAccount и DepositAccount.
Реализуйте методы классов, при необходимости переопределите методы в наследниках так, чтобы выполнялись условия пополнения и снятия:
BankAccount — пополнение и списание происходит без комиссии. Если передать в метод пополнения отрицательное значение, сумма на счёте не должна измениться. При попытке снять большую сумму, чем есть на счёте, сумма не списывается со счёта, сумма на счёте не изменяется.
CardAccount — карточный счёт, в дополнение к условиям BankAccount — при снятии денег должна взиматься комиссия 1% от суммы списания. Пример: при попытке снять со счёта 100 рублей должен списаться 101 рубль.
DepositAccount — депозитный расчётный счёт, в дополнение к условиям BankAccount — нельзя снимать деньги в течение одного месяца после последнего пополнения. Переменную, в которой хранится дата последнего внесения, назовите lastIncome. Тип переменной используйте Calendar или LocalDate.
Запустите в проекте тесты и убедитесь в том, что они выполняются успешно. Если тесты не выполняются и выдают информацию об ошибках, постарайтесь самостоятельно исправить эти недочёты и добиться успешного выполнения тестов перед отправкой результатов куратору.
Задача №2
Цель
Научиться выбирать подходящие модификаторы доступа.
Что нужно сделать
Используйте код предыдущего задания. Установите в коде проекта подходящие модификаторы доступа у методов и переменных классов BankAccount, CardAccount и DepositAccount.
Критерии оценки работы
Принято:
для всех переменных и методов установлены подходящие модификаторы доступа.
На доработку:
задание не выполнено
Задача № 3
Цель
Освоить работу с наследованием, используя абстрактный класс.
Что нужно сделать
Выполните задание в директории src/main/java/practice
В проекте найдите абстрактный класс Client и его наследников IndividualBusinessman, LegalPerson и PhysicalPerson.
Реализуйте методы классов, при необходимости переопределите методы в наследниках так, чтобы выполнялись условия пополнения и снятия:
У каждого клиента есть сумма денег на счету (число). Деньги можно положить на счёт, снять и вернуть остаток на счёте. Каждый класс должен содержать метод, который выводит информацию в консоль о счёте: условие пополнения, условие снятия и баланс.
У PhysicalPerson пополнение и списание происходит без комиссии. Если передать в метод пополнения отрицательное значение, сумма на счёте не должна измениться. При попытке снять сумму больше, чем есть на счете, сумма не списывается со счёта, сумма на счёте не изменяется.
У LegalPerson — все условия PhysicalPerson и дополнительно снятие с комиссией 1%.
У IndividualBusinessman — все условия PhysicalPerson и дополнительно, пополнение с комиссией 1%, если сумма меньше 1 000 рублей. И пополнение с комиссией 0,5%, если сумма больше либо равна 1 000 рублей.
Задача № 4
Цель
Научиться работать с интерфейсами, абстрактными классами и взаимодействием классов.
Что нужно сделать
создать новый проект в папке InheritanceAndPolymorphism/homework_4 и написать все требуемые классы
1. Создайте класс компании Company, содержащей сотрудников и реализующей методы:
найм одного сотрудника — hire(),
найм списка сотрудников – hireAll(),
увольнение сотрудника – fire(),
получение значения дохода компании – getIncome().
Аргументы и возвращаемое значение методов выберите на основании логики работы вашего приложения.
2. Создайте два метода, возвращающие список указанной длины (count). Они должны содержать сотрудников, отсортированных по убыванию и возрастанию заработной платы:
List<Employee> getTopSalaryStaff(int count),
List<Employee> getLowestSalaryStaff(int count).
3. Создайте классы сотрудников с информацией о зарплатах и условиями начисления зарплаты:
Manager — зарплата складывается из фиксированной части и бонуса в виде 5% от заработанных для компании денег. Количество заработанных денег для компании генерируйте случайным образом от 115 000 до 140 000 рублей.
TopManager — зарплата складывается из фиксированной части и бонуса в виде 150% от заработной платы, если доход компании более 10 млн рублей.
Operator — зарплата складывается только из фиксированной части.
Каждый класс сотрудника должен имплементировать интерфейс Employee. В интерфейсе Employee должен быть объявлен метод, возвращающий зарплату сотрудника:
getMonthSalary()
Аргументы и возвращаемое значение метода выберите в соответствии с логикой начисления зарплат. В интерфейсе при необходимости объявляйте необходимые методы.
Для демонстрации и тестирования работы ваших классов:
Создайте и наймите в компанию: 180 операторов Operator, 80 менеджеров по продажам Manager, 10 топ-менеджеров TopManager.
Распечатайте список из 10–15 самых высоких зарплат в компании.
Распечатайте список из 30 самых низких зарплат в компании.
Увольте 50% сотрудников.
Распечатайте список из 10–15 самых высоких зарплат в компании.
Распечатайте список из 30 самых низких зарплат в компании.
Примеры вывода списка зарплат
Список из пяти зарплат по убыванию:
230 000 руб.
178 000 руб.
165 870 руб.
123 000 руб.
117 900 руб.
Рекомендации
Сделайте возможным создавать разные экземпляры компании со своим списком сотрудников и доходом.
Чтобы получить данные компании внутри класса сотрудника, настройте хранение ссылки на Company и передавайте объект Company с помощью конструктора или сеттера.
Учтите, в методы получения списков зарплат могут передаваться значения count, превышающие количество сотрудников в компании, или отрицательные.
Цель
Освоить на практике наследование классов.
Что нужно сделать
Выполните задание в директории master/src/main/java/practice.
В проекте найдите класс BankAccount и унаследованные от него классы CardAccount и DepositAccount.
Реализуйте методы классов, при необходимости переопределите методы в наследниках так, чтобы выполнялись условия пополнения и снятия:
BankAccount — пополнение и списание происходит без комиссии. Если передать в метод пополнения отрицательное значение, сумма на счёте не должна измениться. При попытке снять большую сумму, чем есть на счёте, сумма не списывается со счёта, сумма на счёте не изменяется.
CardAccount — карточный счёт, в дополнение к условиям BankAccount — при снятии денег должна взиматься комиссия 1% от суммы списания. Пример: при попытке снять со счёта 100 рублей должен списаться 101 рубль.
DepositAccount — депозитный расчётный счёт, в дополнение к условиям BankAccount — нельзя снимать деньги в течение одного месяца после последнего пополнения. Переменную, в которой хранится дата последнего внесения, назовите lastIncome. Тип переменной используйте Calendar или LocalDate.
Запустите в проекте тесты и убедитесь в том, что они выполняются успешно. Если тесты не выполняются и выдают информацию об ошибках, постарайтесь самостоятельно исправить эти недочёты и добиться успешного выполнения тестов перед отправкой результатов куратору.
Задача №2
Цель
Научиться выбирать подходящие модификаторы доступа.
Что нужно сделать
Используйте код предыдущего задания. Установите в коде проекта подходящие модификаторы доступа у методов и переменных классов BankAccount, CardAccount и DepositAccount.
Критерии оценки работы
Принято:
для всех переменных и методов установлены подходящие модификаторы доступа.
На доработку:
задание не выполнено
Задача № 3
Цель
Освоить работу с наследованием, используя абстрактный класс.
Что нужно сделать
Выполните задание в директории src/main/java/practice
В проекте найдите абстрактный класс Client и его наследников IndividualBusinessman, LegalPerson и PhysicalPerson.
Реализуйте методы классов, при необходимости переопределите методы в наследниках так, чтобы выполнялись условия пополнения и снятия:
У каждого клиента есть сумма денег на счету (число). Деньги можно положить на счёт, снять и вернуть остаток на счёте. Каждый класс должен содержать метод, который выводит информацию в консоль о счёте: условие пополнения, условие снятия и баланс.
У PhysicalPerson пополнение и списание происходит без комиссии. Если передать в метод пополнения отрицательное значение, сумма на счёте не должна измениться. При попытке снять сумму больше, чем есть на счете, сумма не списывается со счёта, сумма на счёте не изменяется.
У LegalPerson — все условия PhysicalPerson и дополнительно снятие с комиссией 1%.
У IndividualBusinessman — все условия PhysicalPerson и дополнительно, пополнение с комиссией 1%, если сумма меньше 1 000 рублей. И пополнение с комиссией 0,5%, если сумма больше либо равна 1 000 рублей.
Задача № 4
Цель
Научиться работать с интерфейсами, абстрактными классами и взаимодействием классов.
Что нужно сделать
создать новый проект в папке InheritanceAndPolymorphism/homework_4 и написать все требуемые классы
1. Создайте класс компании Company, содержащей сотрудников и реализующей методы:
найм одного сотрудника — hire(),
найм списка сотрудников – hireAll(),
увольнение сотрудника – fire(),
получение значения дохода компании – getIncome().
Аргументы и возвращаемое значение методов выберите на основании логики работы вашего приложения.
2. Создайте два метода, возвращающие список указанной длины (count). Они должны содержать сотрудников, отсортированных по убыванию и возрастанию заработной платы:
List<Employee> getTopSalaryStaff(int count),
List<Employee> getLowestSalaryStaff(int count).
3. Создайте классы сотрудников с информацией о зарплатах и условиями начисления зарплаты:
Manager — зарплата складывается из фиксированной части и бонуса в виде 5% от заработанных для компании денег. Количество заработанных денег для компании генерируйте случайным образом от 115 000 до 140 000 рублей.
TopManager — зарплата складывается из фиксированной части и бонуса в виде 150% от заработной платы, если доход компании более 10 млн рублей.
Operator — зарплата складывается только из фиксированной части.
Каждый класс сотрудника должен имплементировать интерфейс Employee. В интерфейсе Employee должен быть объявлен метод, возвращающий зарплату сотрудника:
getMonthSalary()
Аргументы и возвращаемое значение метода выберите в соответствии с логикой начисления зарплат. В интерфейсе при необходимости объявляйте необходимые методы.
Для демонстрации и тестирования работы ваших классов:
Создайте и наймите в компанию: 180 операторов Operator, 80 менеджеров по продажам Manager, 10 топ-менеджеров TopManager.
Распечатайте список из 10–15 самых высоких зарплат в компании.
Распечатайте список из 30 самых низких зарплат в компании.
Увольте 50% сотрудников.
Распечатайте список из 10–15 самых высоких зарплат в компании.
Распечатайте список из 30 самых низких зарплат в компании.
Примеры вывода списка зарплат
Список из пяти зарплат по убыванию:
230 000 руб.
178 000 руб.
165 870 руб.
123 000 руб.
117 900 руб.
Рекомендации
Сделайте возможным создавать разные экземпляры компании со своим списком сотрудников и доходом.
Чтобы получить данные компании внутри класса сотрудника, настройте хранение ссылки на Company и передавайте объект Company с помощью конструктора или сеттера.
Учтите, в методы получения списков зарплат могут передаваться значения count, превышающие количество сотрудников в компании, или отрицательные.
Похожие материалы
[Skillbox] Java-разработчик - модуль 10 - массивы и коллекции. 2023 год.
StudentHelp
: 18 апреля 2023
[Skillbox] Java-разработчик - модуль 10 - массивы и коллекции. 2023 год.
Задача 1 - ReverseArray
Задача 2 - Hospital
Задача 3 - TwoDimensionalArray
Задача 4 - TodoList
Задача 5 - EmailList
Задача 6 - PhoneBook
Задача 7 - CoolNumbers
850 руб.
[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-разработчик - модуль 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-разработчик.
StudentHelp
: 25 марта 2025
Skillbox. Java-разработчик. Итоговый проект курса «Поисковый движок»
Данный проект сдан в 2021 году, но актуален по сей день.
Проект включает описание самого, проекта, техническую спецификацию, Т.З, критерий оценивания, а также описание подключение и создание базы и таблиц, а также скрипт для создания самих таблиц.
В стоимость входит поддержка и исправление замечаний от куратора на всем пути до сдачи проекта.
4000 руб.
[Skillbox] Java-разработчик - модуль 19 - Практическая работа 19.18 - MovementsList
StudentHelp
: 24 декабря 2023
[Skillbox] Java-разработчик - модуль 19 - Практическая работа 19.18 - MovementsList
Цель задания
Научиться читать файл CSV и анализировать его.
Что нужно сделать
Задание выполняйте в проекте
FilesAndNetwork/homework_3
Напишите код, который будет читать файл csv банковской выписки movementsList.csv и парсить полученные строки. Путь к файлу выписки храните в константе. Получение суммы расхода и дохода по всем операциями реализуйте в классе Movements, в методах getExpenseSum() и getIncomeSu
400 руб.
[Skillbox] Java-разработчик - модуль 19 - Практическая работа 19.19 - Lenta
StudentHelp
: 24 декабря 2023
[Skillbox] Java-разработчик - модуль 19 - Практическая работа 19.19 - Lenta
Цель задания
Научиться получать изображения с сайта парсингом, используя библиотеку jsoup.
Что нужно сделать
Напишите программу, которая:
получает с помощью библиотеки jsoup HTML-код страницы
находит в HTML-коде теги img и получает абсолютные ссылки на изображения из атрибута src;
скачивает изображения в папку images проекта, при этом сохраняя оригинальные названия файлов;
выводит в консоль список c названиями скача
400 руб.
Другие работы
Теория вероятностей и математическая статистика, билет №7
тантал
: 18 августа 2013
Билет № 7
1. Повторение независимых испытаний. Формула Бернулли.
2. В урне 15 шаров: 9 красных и 6 синих. Найти вероятность того, что два наугад вынутых шара будут одного цвета.
3. Случайная величина имеет плотность распределения
Найти параметр а, среднее значение Мх, вероятность события Р .
50 руб.
Техническая термодинамика и теплотехника УГНТУ Задача 8 Вариант 23
Z24
: 20 декабря 2025
Водяной пар с начальным давлением р1=5 МПа и степенью сухости х1=0,95 поступает в пароперегреватель, где его температура повышается на Δt; после перегревателя пар изоэнтропно (адиабатно) расширяется в турбине до давления p2. Пользуясь h-s — диаграммой для водяного пара (приложение Д, рисунок Д1), определить:
— количество теплоты (на 1 кг пара), подведенной к нему в пароперегревателе;
— работу цикла Ренкина и степень сухости пара х2 в конце расширения;
— термический КПД цикла;
— работ
180 руб.
Приемы исследования групповых процессов. Социометрия.
melos
: 28 ноября 2014
Контрольная работа по социологии
Введение 3
1. Классификация методов социологических исследований 4
2. Социометрия как инструмент изучения отношений в социальных группах 8
Заключение 15
Список использованных источников 16
120 руб.
Общая теория связи. Контрольная работа. Вариант №4. 5-й семестр
agentorange
: 18 апреля 2017
Тема 1. Спектральное представление сигналов на выходе
нелинейных цепей
Задание 1
На вход транзисторного усилителя воздействует бигармоническое напряжение
Вольтамперная характеристика полевого транзистора аппроксимируется полиномом
где iс - ток стока; u - напряжение на затворе транзистора.
Рассчитать спектр тока и построить спектральную диаграмму для исходных данных таблицы 1.1 Номер варианта 04
Таблица 1.1.
Вариант a0, мА a1, мА/В a2, (мА/В)2 f1, кГц f2, кГц Um1, В Um2, В
4 6 8 2.7 4 1 0.
100 руб.