题目:品尝饮料
时间:2018-1-5
一、 要求
1、使用命令行参数(饮料类型),输出该饮料类型的味道,如:当命令行参数为1时,结果见如下:
咖啡:苦
2、如果没有该种饮料,结果见如下:
对不起!没有您输入的饮料类型。
二、 推荐实现步骤
1、建立一个Java抽象类Drink,
应当: a、声明一个抽象方法taste(),该方法负责输出饮料的味道;
b、声明int型常量来代表不同的饮料类型(咖啡、啤酒、牛奶),如:
1:咖啡:苦,2:啤酒:清凉 3 牛奶:酸 sour
c、声明静态根据传入的参数创建工厂方法getDrink(int drinkType), 不同的饮料对象,并返回该对象,建议使用switch语句。
2、建立Drink的具体子类:
a、分别建立Drink的子类:Coffee(代表咖啡),Beer(代表啤酒),Milk(代表牛奶);
a1、 咖啡需要磨咖啡粉冲咖啡、啤酒需要开瓶酒盖、牛奶需要冷藏
必须要做完这些,才能品尝味道
b、实现taste()方法,要求在控制台打印各自的味道特征。
4、建立Test测试类,测试以上内容的正确性
a、编写main方法,通过命令行传参的方式传入某种饮料的类型。
b、在main方法中,调用Drink类的getDrink方法,获得相应的饮料对象。
c、然后调用该饮料对象的taste()方法,输出该饮料的味道。
5、编译程序,并运行。
代码1:
package HomW;
class Beer extends Drink{
public void taste(){
System.out.println("啤酒:清凉");
}
public void doSome(){
System.out.println("啤酒需要开瓶酒盖");
}
}
package HomW;
public class Coffee extends Drink{
//调用抽象方法taste()
public void taste(){
System.out.println("咖啡:苦");
}
public void doSome(){
System.outnextint()方法.println("咖啡需要磨咖啡粉冲咖啡");
}
}
package HomW;
public abstract class Drink{
public abstract void taste();
public static void getDrink(int drinkType){
switch (drinkType){
case 1:
Coffee c=new Coffee();
c.doSome();
c.taste();
break;
case 2:
Beer b=new Beer();
b.doSome();
b.taste();
break;
case 3:
Milk m=new Milk();
m.doSome();
m.taste();
break;
default:System.out.println("对不起,没有该饮料");
}
}
}
package HomW;
class Milk extends Drink{
public void taste(){
System.out.println("牛奶:酸的");
}
public void doSome(){
System.out.println("牛奶需要冷藏");
}
}
package HomW;
import java.util.Scanner;
//测试类
public class Test{
public static void main(String[] args) {
Drink c=new Coffee();
Beer b=new Beer();
Milk m=new Milk();
c.taste();
b.taste();
m.taste();
System.out.println("1:咖啡2:啤酒3:牛奶");
Scanner input=new Scanner(System.in);
System.out.println("请输入一个饮料编号:");
int Int();
c.getDrink(i);
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论