Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

📦 Order System: интерфейсы, абстракция и сортировка

Этот проект я создала, чтобы разобраться с интерфейсами, абстрактными классами и сортировкой объектов в Java на примере системы заказов.


📌 Что делает код

Проект моделирует систему заказов с двумя типами:

  • Online — онлайн-заказ (реализует интерфейс Discountable. дает скидку)
  • Offline — офлайн-заказ

Основные возможности:

  • Создание заказов с id, именем клиента и суммой
  • Сортировка заказов по сумме (Comparable)
  • Проверка на дубликаты по id (equals / hashCode)
  • Вывод информации о заказе с указанием типа

🧠 Что я изучала в этом проекте

Тема Что поняла
Абстрактный класс Order — нельзя создать напрямую, только через наследников
Интерфейс Discountable — контракт, который обязывает реализовать метод getDiscount()
Comparable Реализация compareTo() для сортировки объектов
equals / hashCode Переопределение для сравнения объектов по id
Наследование OrderOnline и OrderOffline расширяют Order
Полиморфизм Объекты разных типов в одном списке

Вывод в консоли

(100.0, 150.0, 200.0)

3 [Online]: Charlie | 100.0 
1 [Online]: Alice | 150.0 
1 [Online]: Alice | 150.0 
2 [Offline]: Bob | 200.0

Порядок сортировки — по возрастанию суммы (100 → 150 → 200).


Структура проекта

Файл Роль
Order.java Абстрактный класс + интерфейс Discountable + точка входа main
OrderOnline.java Онлайн-заказ, реализует Discountable
OrderOffline.java Офлайн-заказ, без скидки

Мои заметки

  • compareTo() — сортирует заказы по сумме
  • equals() — сравнивает заказы только по id
  • super.toString() — вызывает метод из родительского класса
  • getDiscount() у OrderOnline возвращает всю сумму как скидку (пример логики)

⭐ Проект помогает мне понять, как работают интерфейсы, наследование и сортировка в Java.

About

Система заказов на Java: абстрактный класс, интерфейс Discountable, сортировка через Comparable

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages