README.md

    Урок 5. Тонкости работы

    Задача 1

    Написать функцию, создающую резервную копию всех файлов в директории (без поддиректорий) во вновь созданную папку ./backup

    Решение

    Реализация метода копирования .backup() в классе BackupHelper
    (см. src/main/java/edu/alexey/javacore/homeworks/hw5/BackupHelper.java)

    Пример

    Копирование:

    hw5-ex1

    Тестовая директория источник:

    hw5-ex2

    Итоговый бэкап:

    hw5-ex3

    Пример информирования об ошибке:

    hw5-ex4

    Задача 2

    Предположить, что числа в исходном массиве из 9 элементов имеют диапазон[0, 3], и представляют собой, например, состояния ячеек поля для игры в крестикинолики, где 0 – это пустое поле, 1 – это поле с крестиком, 2 – это поле с ноликом, 3 – резервное значение. Такое предположение позволит хранить в одном числе типа int всё поле 3х3. Записать в файл состояние поля и добавить возможность восстановить состояние поля из файла (*) сделать доп возможность в игре крестики-нолики - метод для сохранения состояния игры и восстановление из файла

    Урок 4. Обработка исключений

    Задача

    1. В класс Товаров добавить перечисление с категориями товаров, добавить в Товар поле категория со значением созданного перечисления. Добавить геттеры, сеттеры.
    2. Добавить перечисление с размерами скидок - 0, 5, 10, 15, 20%. Написать метод, при вызове которого на переданную категорию товара незначается рандомная скидка из перечисления. Добавить в заказ поле стоимость и пересчитать стоимость согласно сгенерированным скидкам.
    3. Если сумма величин скидок на товары из заказа получилась больше 50%, выбросить исключение TooMuchSaleException(); То есть нужно сложить величины скидок на категории и проверить больше 50 или нет.

    Исходная задача: Эмуляция интернет-магазина

    Решение

    Перечисление с категориями товаров — …/hw4/enums/Category.java

    Перечисление с размерами скидок — …/hw4/enums/Discount.java

    Метод рандомного назначения скидки на категорию — generateDiscountByCategory() в …/hw4/DiscountHelper.java

    Типы кастомных исключений, включая TooMuchSaleException…/hw4/exceptions/*

    Поскольку условие подразумевает, что один заказ может иметь более одной позиции, в том числе из разных категорий товаров, обработка заказа реализована как фабрика заказов — …/hw4/OrderComposerImpl.java, предоставляемая экземпляром магазина …/hw4/Store.java.

    Пример

    mvn exec:java
    

    hw4-ex

    Урок 3. Классы и объекты

    Задача 1

    Опишите класс руководителя, наследник от сотрудника. Перенесите статический метод повышения зарплаты в класс руководителя, модифицируйте метод таким образом, чтобы он мог поднять заработную плату всем, кроме руководителей.
    В основной программе создайте руководителя и поместите его в общий массив сотрудников. Повысьте зарплату всем сотрудникам и проследите, чтобы зарплата руководителя не повысилась.

    Решение

    См. статический метод increaseOrdinaryEployeesSalary(…) в классе руководителя — …/hw3/Chief.java

    Основная программа — …/hw3/Main.java

    Команды для запуска (предварительно установить корневой каталог проекта в качестве рабочей директории):

    mvn exec:java
    

    или

    javac -sourcepath src/main/java/ -d out src/main/java/edu/alexey/javacore/homeworks/hw3/Main.java
    java -classpath out edu.alexey.javacore.homeworks.hw3.Main
    

    Задача 2

    Написать 2 класса компараторов по возрасту и зарплате (implements Comparator)

    Решение

    См. вложенные классы ComparatorByAge и ComparatorBySalary в фабрике компараторов EmployeeComparators…/hw3/EmployeeComparators.java

    Пример

    hw3-ex1

    hw3-ex2

    Конвейеры
    0 успешных
    0 с ошибкой