使用java,编写一个快餐店点餐系统,包含定义类和创建对象,构造方法,方法重载和多态,对象的组合,参数传值,,类变量与实例变量,类方法与实例方法
时间: 2024-10-19 20:14:30 浏览: 47
在Java中,我们可以设计一个简单的快餐店点餐系统。首先,我们需要定义几个类:
1. **MenuItem** 类:代表菜单上的单品,它可以有名字、价格等属性。
```java
public class MenuItem {
private String name;
private double price;
public MenuItem(String name, double price) {
this.name = name;
this.price = price;
}
// 构造方法
public MenuItem() {}
// 方法重载 - 根据需要提供价格获取选项
public double getPrice() { return price; }
public void setPrice(double price) { this.price = price; }
@Override
public String toString() {
return "Name: " + name + ", Price: " + price;
}
}
```
2. **Order** 类:表示订单,可以包含多个菜品。
```java
import java.util.ArrayList;
import java.util.List;
public class Order {
private List<MenuItem> items;
public Order() {
this.items = new ArrayList<>();
}
// 组合 - 添加菜品到订单
public void addItem(MenuItem item) {
items.add(item);
}
// 展示订单
public String showOrder() {
StringBuilder orderDetails = new StringBuilder();
for (MenuItem item : items) {
orderDetails.append(item.toString()).append("\n");
}
return orderDetails.toString();
}
}
```
3. **Customer** 类:顾客可以下单并查看订单。
```java
public class Customer {
private Order order;
public Customer(Order order) {
this.order = order;
}
// 创建新的点餐
public void placeOrder(MenuItem... items) {
for (MenuItem item : items) {
order.addItem(item);
}
}
// 打印订单信息
public void viewOrder() {
System.out.println("Order by customer:");
System.out.println(order.showOrder());
}
}
```
在这个例子中:
- `MenuItem` 类有类变量(静态成员)和实例变量;
- `Customer` 类体现了多态,通过接受`Order`类型的参数并操作其实例。
你可以创建这样的代码实例:
```java
public static void main(String[] args) {
MenuItem burger = new MenuItem("Burger", 15.0);
MenuItem pizza = new MenuItem("Pizza", 20.0);
Order myOrder = new Order();
Customer customer = new Customer(myOrder);
customer.placeOrder(burger, pizza);
customer.viewOrder();
}
```
阅读全文