README.md

Финальный проект второго спринта

Проект является финальным заданием ко второму спринту курса по Автоматизации тестирования на Java.

Задание

Иерархия классов

Создай иерархию классов с продуктами, которые можно положить в корзину. Создай их в отдельном пакете model. В пакете должны быть:

1. Класс Food — абстрактный класс с полями:

  • amount — количество продукта в килограммах (целое число);
  • price — цена за единицу (вещественное число);
  • isVegetarian — флаг, который показывает, вегетарианский ли продукт.

Поля должны быть доступны только из классов-потомков.

2. Интерфейс Discountable c единственным методом getDiscount. Он возвращает размер скидки — вещественное число. Все классы, реализующие этот интерфейс, возвращают значение 0 в методе getDiscount, если в задании не указано иное.

Наследники класса Food: Meat и Apple

  • Класс Meat — для мяса. Это класс с конструктором. Конструктор принимает два входных параметра — количество и цену. И устанавливает для флага isVegetarian правильное значение.
  • Класс Apple — для яблок. У него есть ещё строковое поле colour — цвет яблок. Конструктор принимает три параметра: количество, цену и цвет яблок — и устанавливает флаг isVegetarian. Для красных яблок (colour равно “red”) скидка должна быть равна 60%: соответствующий метод возвращает значение 60.

Пакеты и подпакеты

Создай иерархию пакетов.

1. Подпакет constants.

Заведи подпакет constants в пакете model. Там создай два класса: Discount для значений скидок, Colour для цветов red и green — это цвета яблок. В них все поля должны быть public static final.

2. Пакет service.

В нём создай класс для корзины — ShoppingCart. Добавь в него поле — массив элементов из объектов типа Food. Понадобится конструктор с одним параметром — массивом элементов Food. С его помощью ты создашь объект корзины. В классе ShoppingCart реализуй методы для работы с корзиной:

  • получить общую сумму товаров в корзине без скидки,
  • получить общую сумму товаров в корзине со скидкой,
  • получить общую сумму всех вегетарианских продуктов в корзине без скидки.

Код для функциональности

Отдельно от пакетов создай класс Main с методом main. В методе main реализуй следующую логику:

1. Инициализируй данные. Для этого создай объекты:

  • Мясо в количестве 5 кг по цене 100 рублей за кг;
  • Яблоки красные в количестве 10 кг по цене 50 рублей;
  • Яблоки зелёные в количестве 8 кг по цене 60 рублей.

2. Создай массив продуктов из этих элементов и проинициализируй корзину с помощью созданного массива. Посчитай и выведи на экран значения для созданной корзины:

  • общую сумму товаров без скидки,
  • общую сумму товаров со скидкой,
  • сумму всех вегетарианских продуктов без скидки.

Все переменные класса должны быть недоступны извне, если не указано иное. Доступ к ним реализуй через известные тебе методы: создавай только те, которые действительно нужны для реализации описанной функциональности.

Описание

Проект является финальным заданием ко второму спринту курса по Автоматизации тестирования на Java.

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