利用简单工厂模式编写Java程序实现披萨制作。具体要求: 1.接收用户输入的信息,选择需要制作的披萨,可供选择的披萨有培根披萨和水果披萨。 2.程序运行结果参照如下: 请选择想要制作的披萨:1培根披萨 2水果披萨 2.程序运行结果参照如下: 请输入培根的克数:20 请输入披萨的大小:12 请输入披萨的价格:100 名称:培根披萨 价格:100元 大小:12寸 培根克数:20克 请选择想要制作的披萨: 1培根披萨 2水果披萨 请输入想要加入的水果:芒果,草莓 请输入披萨的大小:10 请输入披萨的价格:80 名称:水果披萨 价格:80 大小:10寸 水果配料:芒果 草莓
时间: 2024-03-16 07:44:41 浏览: 12
好的,根据您的要求,我已经为您编写了一个利用简单工厂模式实现披萨制作的Java程序。以下是程序代码:
Pizza.java(披萨类)
```java
public abstract class Pizza {
protected String name; // 披萨名称
protected int size; // 披萨大小
protected double price; // 披萨价格
public Pizza(String name, int size, double price) {
this.name = name;
this.size = size;
this.price = price;
}
public void show() {
System.out.println("名称:" + name);
System.out.println("价格:" + price + "元");
System.out.println("大小:" + size + "寸");
}
public abstract void addIngredient(); // 添加配料
}
```
BaconPizza.java(培根披萨类)
```java
public class BaconPizza extends Pizza {
private int baconWeight; // 培根克数
public BaconPizza(String name, int size, double price, int baconWeight) {
super(name, size, price);
this.baconWeight = baconWeight;
}
@Override
public void show() {
super.show();
System.out.println("培根克数:" + baconWeight + "克");
}
@Override
public void addIngredient() {
System.out.println("正在添加培根...");
}
}
```
FruitPizza.java(水果披萨类)
```java
public class FruitPizza extends Pizza {
private String[] fruits; // 水果配料
public FruitPizza(String name, int size, double price, String[] fruits) {
super(name, size, price);
this.fruits = fruits;
}
@Override
public void show() {
super.show();
System.out.print("水果配料:");
for (int i = 0; i < fruits.length; i++) {
if (i != fruits.length - 1) {
System.out.print(fruits[i] + ",");
} else {
System.out.println(fruits[i]);
}
}
}
@Override
public void addIngredient() {
System.out.println("正在添加水果...");
}
}
```
PizzaFactory.java(披萨工厂类)
```java
public class PizzaFactory {
public static Pizza createPizza(int type) {
switch (type) {
case 1:
return new BaconPizza("培根披萨", 0, 0, 0);
case 2:
return new FruitPizza("水果披萨", 0, 0, null);
default:
return null;
}
}
}
```
Main.java(主程序)
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请选择想要制作的披萨:");
System.out.println("1. 培根披萨");
System.out.println("2. 水果披萨");
int type = scanner.nextInt();
Pizza pizza = PizzaFactory.createPizza(type);
if (pizza == null) {
System.out.println("请输入正确的序号!");
continue;
}
if (type == 1) {
System.out.println("请输入培根的克数:");
int baconWeight = scanner.nextInt();
System.out.println("请输入披萨的大小:");
int size = scanner.nextInt();
System.out.println("请输入披萨的价格:");
double price = scanner.nextDouble();
pizza = new BaconPizza("培根披萨", size, price, baconWeight);
} else if (type == 2) {
System.out.println("请输入想要加入的水果(用逗号隔开):");
String[] fruits = scanner.next().split(",");
System.out.println("请输入披萨的大小:");
int size = scanner.nextInt();
System.out.println("请输入披萨的价格:");
double price = scanner.nextDouble();
pizza = new FruitPizza("水果披萨", size, price, fruits);
}
pizza.addIngredient();
pizza.show();
}
}
}
```
请注意,上述代码并不是完整的问答形式,您需要将代码复制到 Java IDE 中,然后编译运行,根据程序提示进行交互操作。