Skip to content
This repository was archived by the owner on Mar 25, 2026. It is now read-only.

RomanGulevatiy/CoffeeShop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏗️ Структура проєкту

src/
   Main.java           // Головний клас
   service/
      CoffeeShop.java  // Клас кав’ярні з вкладеними Table та Order
   util/
      Constants.java   // Клас із константами (назва кав’ярні)

Хід виконання проєкту

☕ Створення класу CoffeeShop

  • Поля: name, listOfTables.
  • Конструктор ініціалізує назву кав’ярні через Constants.Shop.SHOP_NAME.
  • Методи:
    • addTable(Table) - додати столик до кав’ярні;
    • displayAllTables() - відобразити всі столики.
  • Статичний блок ініціалізації:
    • Виводить привітання при запуску: "Welcome to the Starbucks!".

🪑 Створення вкладеного (static) класу Table

  • Поля: tableNumber, capacity, listOfOrders.
  • Лічильник counterTable автоматично присвоює номер кожному новому столику.
  • Блок ініціалізації екземпляра:
    • Виводить повідомлення при створенні столика.
  • Методи:
    • addOrder(String clientName, String drinkName, double price) - додає нове замовлення, якщо є вільне місце;
    • displayAllOrders() - виводить усі замовлення поточного столика;
    • sortOrdersByPrice() - сортує замовлення за ціною (анонімний клас-компаратор);
    • sortOrdersByDrinkName() - сортує замовлення за назвою напою (анонімний клас-компаратор);
    • displayOrdersWithLambda() - виводить замовлення за допомогою лямбда-виразу.

☕🧾 Створення внутрішнього (non-static) класу Order

  • Розташований всередині класу Table.
  • Поля: clientName, drinkName, price.
  • Конструктор ініціалізує всі поля.
  • Метод:
    • displayOrder() - виводить інформацію про замовлення з використанням Table.this.tableNumber (qualified this) для доступу до полів класу Table.

About

Java pro course lecture homework #3

Resources

License

Stars

Watchers

Forks

Contributors

Languages