匿名用户
1级
2012-04-09 回答
话说你这样的题目很蛋疼,用int常数来代表饮料类型这是特别扭的想法,不知道是你的想法还是题目本身就是这样,假如是你自己的想法我想不到怎么去写,假如不使用int常数代表,5分钟应该搞定了,就是想问问你有没有改了题目,习惯了不用switch语句...
追问:
先感谢您的回答。
题目没错是这样的,
由于我是初学,老师布置的作业,我其实也觉得switch有点别扭,
至于int,我的想法是用final先设定好static final int COFFEE = 1;
再用switch。
追答:
Drinkl类:
public abstract class Drink {
abstract void taste();
static final int COFFEEID= 1;
static final int BEERID = 2;
static final int MILKID = 3;
static Drink getDrink(int getDrinkTypt){
switch(getDrinkTypt){
case COFFEEID: return new Coffee();
case BEERID: return new Beer();
case MILKID: return new Milk();
}
return null;
}
}
Coffee类,Beer,Milk的根Coffee的差不多,改一下类名和打印语句就好了。
public class Coffee extends Drink {
void taste() {
System.out.println("It tastes like coffee...");
}
}
Test类:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
System.out.println("请输入1到3整数");
Scanner s = new Scanner(System.in);
int i = s.nextInt();
Drink drink = Drink.getDrink(i);
System.out.println("取到的对象是:" + drink.getClass().getName());
drink.taste();
}
}
谢谢LZ,祝你早日NB