编写程序实现软料购买:编写程序,接收用户输入的信息,选择购买的饮料。可供 选择的饮料有:咖啡、矿泉水和可乐。其中,购买咖啡时可以选择:加糖、加奶,还是什么都不加。购买可乐时可以选择:买可口可乐还是百事可乐。 程序运行效果如图所示。
首先定义一个饮料类,作为父类,然后分别定义咖啡,矿泉水,可乐类作为子类,重写父类的展示方法,让后在测试类进行测试运行,为了避免测试类的代码臃肿,我选择将不同饮料的展示方法写在各自的类的zhanshi()方法里面,测试类只要简单的执行Switch语句即可完成实现。
饮料类(父类)如下:
public abstract class Drink {
public String name;
public String peiLIao;
public int rongLiang;
public Drink(String name, String peiLIao, int rongLiang) {
this.name = name;
this.peiLIao = peiLIao;
this.rongLiang = rongLiang;
}
public Drink() {
}
public abstract void zhanShi();
public abstract void show();
}
咖啡类:
import java.util.Scanner;
public class Coffee extends Drink{
public Coffee(String name, String peiLIao, int rongLiang) {
super(name, peiLIao, rongLiang);
}
public Coffee() {
}
@Override
public void show(){
System.out.println("名称:"+name);
System.out.println("添加配料:"+peiLIao);
System.out.println("容量:"+rongLiang);
}
@Override
public void zhanShi(){
String na="咖啡";
String pei="";
Scanner scanner = new Scanner(System.in);
System.out.println("请输入购买让容量:");
int r= scanner.nextInt();
System.out.println("请问是否要配料:(1、加糖 2、加奶 3、什么都不加)");
int p= scanner.nextInt();
if(p==1){
pei="加糖";
} else if (p==2) {
pei="加奶";
} else if (p==3) {
pei="什么都不加";
}else {
System.out.println("输入有误,默认为什么都不加");
pei="什么都不加";
}
System.out.println("您购买的饮料信息如下。");
new Coffee(na,pei,r).show();
}
}
矿泉水类:
import java.util.Scanner;
public class MineralWater extends Drink{
public MineralWater(String name, int rongLiang) {
this.name=name;
this.rongLiang=rongLiang;
}
public MineralWater() {
}
@Override
public void zhanShi() {
String na="矿泉水";
Scanner scanner = new Scanner(System.in);
System.out.println("请输入购买让容量:");
int r= scanner.nextInt();
System.out.println("您购买的饮料信息如下。");
new MineralWater(na,r).show();
}
@Override
public void show() {
System.out.println("名称:"+name);
System.out.println("容量:"+rongLiang);
}
}
可乐类:
import java.util.Scanner;
public class Coke extends Drink{
public Coke(String name, int rongLiang) {
this.name=name;
this.rongLiang=rongLiang;
}
public Coke() {
}
@Override
public void show(){
System.out.println("名称:"+name);
System.out.println("容量:"+rongLiang);
}
@Override
public void zhanShi() {
String pei="";
Scanner scanner = new Scanner(System.in);
System.out.println("请输入购买让容量:");
int r= scanner.nextInt();
System.out.println("请选择可乐种类:(1、可口可乐 2、百事可乐)");
int p= scanner.nextInt();
if(p==1){
pei="可口可乐";
} else if (p==2) {
pei="百事可乐";
} else {
System.out.println("输入有误,默认选最好喝的可口可乐");
pei="可口可乐";
}
System.out.println("您购买的饮料信息如下。");
new Coke(pei,r).show();
}
}
测试类:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请选择饮料(1、咖啡 2、矿泉水、3、可乐):");
int a= scanner.nextInt();
switch (a){
case 1:
Drink d1=new Coffee();
d1.zhanShi();
break;
case 2:
Drink d2=new MineralWater();
d2.zhanShi();
break;
case 3:
Drink d3=new Coke();
d3.zhanShi();
break;
default:
System.out.println("输入错误,请重新输入");
break;
}
}
}