1.编写程序实现比萨制作。需求说明编写程序,接收用户输入的信息,选择需要制作的比萨。可供选择的比萨有:培根比萨和海鲜比萨。
实现思路及关键代码
1)分析培根比萨和海鲜比萨
2)定义比萨类
3)属性:名称、价格、大小
4)方法:展示
5)定义培根比萨和海鲜比萨继承自比萨类
6)定义测试类,根据输入信息产生具体的比萨对象
分析: 1、培根披萨:克数、名称、价格、大小 2、海鲜披萨:配料信息、名称、价格、大小 由于培根披萨和海鲜披萨存在共性,所有我提取出来到一个抽象类中 3、披萨:名称、价格、大小 4、定义展示方法show() 5、定义生产披萨方法PizzaStore 6、键入输入对象 7、定义测试类、根据输入信息产生具体的比萨对象
本次编程我们将分成多个类完成。
新建抽象类Pizza:
public abstract class Pizza {
private String name;//名称
private int size;//大小
private int price;//价格
//创建getXxx()和setXxx()方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
//创建有参的构造方法
public Pizza(String name, int size, int price) {
this.name = name;
this.size = size;
this.price = price;
}
//创建无参的构造方法
public Pizza() {
}
//创建抽象方法展示类show()
public abstract void show();
}
新建BaconPizza类:
public class BaconPizza extends Pizza {
//定义培根披萨的特有属性:克
private int gramNum;
//创建getXxx()和setXxx()方法
public int getGramNum() {
return gramNum;
}
public void setGramNum(int gramNum) {
this.gramNum = gramNum;
}
//创建有参的构造方法
public BaconPizza(String name, int size, int price, int gramNum) {
super(name, size, price);
this.gramNum = gramNum;
}
//创建无参的构造方法
public BaconPizza() {
}
//重写展示类show()方法
@Override
public void show() {
System.out.println("名称:" + getName() + "\n价格:" + getPrice() + "元" + "\n大小:" + getSize() + "寸" + "\n克数:" + gramNum );
}
}
新建SeaFoodPizza类:
public class SeaFoodPizza extends Pizza{
//定义海鲜披萨的特有属性:配料
private String PeiLiao;
//创建get()Xxx和set()Xxx方法
public String getPeiLiao() {
return PeiLiao;
}
public void setPeiLiao(String peiLiao) {
PeiLiao = peiLiao;
}
//创建有参的构造方法
public SeaFoodPizza(String name,String peiLiao, int size, int price) {
super(name, size, price);
PeiLiao = peiLiao;
}
//创建无参的构造方法
public SeaFoodPizza() {
}
//重写展示类show()方法
@Override
public void show() {
System.out.println("名称:" + getName()+ "\n配料:" + PeiLiao + "\n价格:" + getPrice() + "元" + "\n大小:" + getSize() + "寸" );
}
}
新建PizzaTest测试类:
import java.util.Scanner;
public abstract class PizzaTest {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
while (true){
System.out.println("请选择想要制作的比萨(1、培根比萨 2、海鲜比萨)");
int i = sc.nextInt();
if(i==1){
Pizza pizza = new BaconPizza();
System.out.print("请输入培根克数:");
int gramNum = sc.nextInt();
System.out.print("请输入比萨大小:");
int size = sc.nextInt();
System.out.print("请输入比萨价格:");
int price = sc.nextInt();
pizza.setName("培根比萨");
((BaconPizza) pizza).setGramNum(gramNum);
pizza.setSize(size);
pizza.setPrice(price);
pizza.show();
}else if (i==2){
Pizza pizza = new SeaFoodPizza();
System.out.print("请输入配料信息:");
String peiliao = sc.next();
System.out.print("请输入比萨大小:");
int size = sc.nextInt();
System.out.print("请输入比萨价格:");
int price = sc.nextInt();
pizza.setName("海鲜比萨");
((SeaFoodPizza) pizza).setPeiLiao(peiliao);
pizza.setSize(size);
pizza.setPrice(price);
pizza.show();
}else if (i==0){
System.out.println("欢迎下次光临!");
break;
}else {
System.out.println("没有您想要制作的比萨,请重新选择您想要制作的比萨,输入0退出");
}
}
}
}
运行结果:
请选择想要制作的比萨(1、培根比萨 2、海鲜比萨)
1
请输入培根克数:20
请输入比萨大小:13
请输入比萨价格:25
名称:培根比萨
价格:25元
大小:13寸
克数:20
请选择想要制作的比萨(1、培根比萨 2、海鲜比萨)
2
请输入配料信息:肉松、虾仁、芝士
请输入比萨大小:23
请输入比萨价格:26
名称:海鲜比萨
配料:肉松、虾仁、芝士
价格:26元
大小:23寸
请选择想要制作的比萨(1、培根比萨 2、海鲜比萨)
3
没有您想要制作的比萨,请重新选择您想要制作的比萨,输入0退出
请选择想要制作的比萨(1、培根比萨 2、海鲜比萨)
0
欢迎下次光临!Process finished with exit code 0
从运行结果可以看出,相比1.0版本的Java多态披萨制作,本次编程显得更灵活更实用,与我们现实生活中更贴切。
到底啦!给个关注吧!