Bills Meal Order is a simple Java 17 console application designed to simulate a basic restaurant order system. Built as an academic and exploratory project, it focuses on demonstrating key principles of Object-Oriented Programming (OOP) in a practical, real-world inspired context.
Object-Oriented Programming allows developers to design modular, flexible, and maintainable software. By modeling real-world entities as objects, complex systems become easier to understand, test, and expand. This project illustrates how fundamental OOP principles can be applied to build a structured and intuitive solution — even for a simple meal ordering system.
- Classes & Objects: Core building blocks used to represent meals, orders, and customer interactions.
- Encapsulation: Data is protected and exposed through controlled access.
- Inheritance: Shared behavior is modeled through a parent-child class relationship.
- Polymorphism: Common interfaces are used to allow flexibility in how meal types or actions behave.
- Composition: Classes are built using instances of other classes, reflecting real-world dependencies.
- Method Overriding: Specific behaviors are customized in subclasses for better specialization.
- Lets users browse available meals
- Allows the creation of meal orders
- Calculates total prices
- Displays a detailed summary of the final order
Bills Meal Order es una sencilla aplicación de consola en Java 17 diseñada para simular un sistema básico de pedidos en un restaurante. Desarrollada como un proyecto académico y de exploración, su objetivo es demostrar cómo aplicar los principios fundamentales de la Programación Orientada a Objetos (POO) en un contexto práctico inspirado en el mundo real.
La Programación Orientada a Objetos permite a los desarrolladores crear software modular, flexible y fácil de mantener. Al modelar entidades del mundo real como objetos, los sistemas complejos se vuelven más comprensibles, testeables y escalables. Este proyecto muestra cómo los conceptos clave de la POO pueden aplicarse para construir una solución estructurada e intuitiva — incluso en un sistema simple de pedidos de comidas.
- Clases y Objetos: Representan comidas, pedidos e interacciones con el cliente.
- Encapsulación: Protege los datos y controla su acceso.
- Herencia: Modela comportamientos compartidos mediante relaciones padre-hijo entre clases.
- Polimorfismo: Usa interfaces comunes que permiten flexibilidad en el comportamiento de las comidas o acciones.
- Composición: Las clases se construyen utilizando instancias de otras clases, reflejando dependencias reales.
- Sobreescritura de métodos: Permite personalizar comportamientos en subclases para una mejor especialización.
- Permite visualizar las comidas disponibles
- Permite crear órdenes de comida
- Calcula el precio total
- Muestra un resumen detallado del pedido final