编写程序实现软料购买:编写程序,接收用户输入的信息,选择购买的饮料。可供选择的饮料有:咖啡、矿泉水和可乐。其中,购买咖啡时可以选择:加糖、加奶还是什么都不加。购买可乐时可以选择:买可口可乐还是百事可乐。
首先定义一个父类,并且定义为抽象类
public abstract class Drink{
String name;//饮料的名字
int capacity;//饮料的容量
public abstract void info();//定义的一个抽象方法,后面其他的子类可以直接重写调用
}
建一个咖啡类
public class Coffee extends Drink {
private String ingredients;//饮料的配料
//set/get方法
public void setIngredients(String ingredients) {
this.ingredients = ingredients;
}
public String getIngredients() {
return ingredients;
}
@Override
public void info() {
System.out.println("名称:"+name);
System.out.println("容量:"+capacity+"ml");
System.out.println("配料:"+ingredients);
}
}
创建可乐类,并继承Drink,重写info()方法,并添加可乐的属性`
public class Coke extends Drink {
//可乐的种类
private String type;
//使用封装,set/get方法
public void setType(String type) {
this.type = type;
}
public String getType() {
return type;
}
@Override
public void info() {
System.out.println("您购买饮料的信息如下:");
System.out.println("名称:"+name);
System.out.println("种类:"+type);
System.out.println("容量:"+capacity+"ml");
}
}
创建Water类,继承Drink类,重写info()方法
public class Water extends Drink{
public void info() {
System.out.println("您要购买的信息如下:");
System.out.println("名称:"+name);
System.out.println("容量:"+capacity+"ml");
}
}
创建测试类
public class DrinkTest {
static Scanner in = new Scanner(System.in);
static String jixu;
public static void main(String[] args) {
do {
//提示语
System.out.println("~~~~~~~~~~~~自动售水机欢迎您~~~~~~~~~~~~");
System.out.println("请选择购买的饮料:1.咖啡 2.矿泉水 3.可乐 4.退出");
int type = in.nextInt();
if(type == 1) {
System.out.println("请输入购买容量:");
Coffee c = new Coffee();//创建咖啡对象
c.capacity = in.nextInt();
c.name = "咖啡";
//使用switch提示用户加糖,加奶,还是什么都不加操作
System.out.println("是否需要添加配料: 1.加糖 2.加奶 3.什么都不加");
int num = in.nextInt();//定义变量用来接收用户输入的操作
//将变量使用在switch中,执行不同的操作
switch(num) {
case 1:
c.setIngredients("加糖");
break;
case 2:
c.setIngredients("加奶");
break;
case 3:
c.setIngredients("什么都不加");
break;
default :
System.out.println("您输入的指令不正确");
break;
}
System.out.println("您要购买的饮料信息如下:");
c.info();
//如果用户输入2的时候,执行的操作如下
}else if(type == 2) {
System.out.println("请输入购买容量:");
Water w = new Water();
w.name = "矿泉水";
w.capacity = in.nextInt();
w.info();
//如果用户输入的是3,执行的操作
}else if(type == 3) {
System.out.println("请输入购买容量:");
Coke c = new Coke();
c.name = "可乐";
c.capacity = in.nextInt();
System.out.println("请选择可乐的种类: 1.可口可乐 2.百事可乐");
//因为可乐分种类,所以定义num变量来接收用户输入的种类
int num = in.nextInt();
//根据种类的不同,执行不同的操作
switch(num) {
case 1 :
//如果是可口可乐将赋值
c.setType("可口可乐");
break;
case 2:
c.setType("百事可乐");
break;
default:
System.out.println("不好意思,没您想要的可乐");
break;
}
c.info();
//退出程序
}else if(type == 4) {
System.out.println("欢迎下次光临");
break;
}
System.out.println("请问您是否继续购买: y or n");
//使用jixu变量来接收用户输入的是否是y
jixu = in.next();
//如果输入的是y执行,否则执行
if(jixu.equals("y")) {
System.out.println("请继续操作......");
}else {
System.out.println("谢谢使用.....");
}
}while("y".equals(jixu));
}
//使用变量jixu来接收用户输入的是否是y
jixu = in.next();
//如果输入的是y执行,否则执行
if(jixu.equals("y")) {
System.out.println("请继续操作......");
}else {
System.out.println("谢谢使用.....");
}
}while("y".equals(jixu));
}