A Java application that models a simple pizza ordering system using object-oriented programming principles. The project demonstrates inheritance, encapsulation, constructors, method overriding, and reusable class design by allowing different pizza types to inherit common functionality from a base Pizza class.
Developed as part of coursework to strengthen Java programming and object-oriented design skills.
- 🍕 Create different pizza types
- 🧀 Store pizza ingredients such as cheese and sauce
- 🥓 Support specialized pizzas (e.g., Pepperoni Pizza)
- ➕ Add additional toppings
- 💲 Calculate pizza pricing
- 📝 Display pizza details using an overridden
toString()method
- Java
- Object-Oriented Programming (OOP)
- Inheritance
- Encapsulation
- Constructors
- Method Overriding
- IntelliJ IDEA
This project demonstrates several core Java programming concepts:
- Classes and Objects
- Inheritance
- Encapsulation
- Constructors
- Getter and Setter Methods
- Method Overriding
- Polymorphism
- Code Reusability
java-pizza-builder/
│
├── src/
│ ├── Pizza.java
│ ├── PepperoniPizza.java
│ └── PizzaShop.java
│
├── README.md
└── .gitignore
The Pizza class serves as the parent class and stores common pizza information, including:
- Pizza name
- Amount of cheese
- Amount of sauce
- Base price
It also provides methods to:
- Calculate price
- Add toppings
- Display pizza information
- Generate a basic recipe
The PepperoniPizza class extends the Pizza class and demonstrates inheritance by adding pepperoni-specific functionality.
Additional features include:
- Pepperoni quantity
- Overridden methods
- Custom constructors
- Specialized pizza behavior
PizzaShop serves as the driver class that creates pizza objects and demonstrates how the classes interact.
Example workflow:
- Create a pizza.
- Create a pepperoni pizza.
- Display pizza information.
- Add additional toppings.
- Display the updated total price.
This Pizza is Pp pizza Pizza which contains:
2 cups of cheese
2 cups of sauce
The price is 5.000000 dollars.
More Pepperoni is added
7.0
- Java programming
- Object-oriented software design
- Inheritance
- Encapsulation
- Method overriding
- Constructor overloading
- Class relationships
- Code organization
Potential enhancements include:
- Graphical user interface (JavaFX)
- Multiple pizza types
- Customer order management
- Receipt generation
- Menu system
- Database integration
- User input validation
- Additional toppings and pricing options
Through this project, I strengthened my understanding of Java object-oriented programming by designing reusable classes, implementing inheritance through specialized pizza types, using constructor overloading, overriding inherited methods, and organizing code into modular components.
This project also reinforced the importance of designing parent-child class relationships that promote code reuse and maintainability.
Kwaku Takyi
- GitHub: https://github.com/ktakyi
- LinkedIn: https://www.linkedin.com/in/ktakyi