从此封心@ 2021-10-12 11:45 采纳率: 82.4%
浏览 154
已结题

来个解一下,求解救,麻烦写下代码谢谢

综合测试题:品尝饮料
一、要求  
1、建立一个Java抽象类Drink
a)声明一个抽象方法taste(),该方法负责输出饮料的味道;
b)饮料类型(Coffee(咖啡),Beer(啤酒),Milk(牛奶)):
c)声明静态方法getDrink(String drinkType),根据传入的饮料英文名称创建 不同的饮料对象,并返回该对象。

2、建立Drink的具体子类:  
a)分别建立Drink的子类:Coffee(咖啡),Beer(啤酒),Milk(牛奶); 
b)实现taste()方法,要求在控制台打印各自的味道特征。  

4、建立Test测试类,测试以上内容的正确性  
a)编写main方法,通过命令行传参的方式传入某种饮料的类型。
b)在main方法中,调用Drink类的getDrink方法,获得相应的饮料对象。然后调用该饮料对象的taste()方法,输出该饮料的味道。

 5、编译程序,并运行。  
a)如果当参数为Coffee时,结果为:咖啡:苦 
b)如果没有该种饮料,结果为:对不起!没有您输入的饮料类型。

  • 写回答

2条回答 默认 最新

  • Mattie chen 2021-10-12 12:36
    关注

    给你写了:
    首先是一个Drink接口:

    1. public interface Drink {
    2. void taste();
    3. }

    接着是三个子类

    1. public class Coffee implements Drink{
    2. @Override
    3. public void taste() {
    4. System.out.println("咖啡:苦");
    5. }
    6. }
    1. public class Beer implements Drink{
    2. @Override
    3. public void taste() {
    4. System.out.println("啤酒:略微苦涩");
    5. }
    6. }
    1. public class Milk implements Drink {
    2. @Override
    3. public void taste() {
    4. System.out.println("牛奶:微甜");
    5. }
    6. }

    然后是Drink工厂类,通过这个类中的方法根据传入参数获取不同的饮料类型

    1. public class DrinkFactory {
    2. public static Drink getDrink(String drinkType){
    3. if (drinkType==null){
    4. return null;
    5. }
    6. if(drinkType.equalsIgnoreCase("Coffee")){
    7. return new Coffee();
    8. }else if(drinkType.equalsIgnoreCase("Beer")){
    9. return new Beer();
    10. }else if(drinkType.equalsIgnoreCase("Milk")){
    11. return new Milk();
    12. }
    13. return null;
    14. }
    15. }

    最后测试类:

    1. import java.util.Scanner;
    2. public class Test {
    3. public static void main(String[] args) {
    4. //命令行输入参数
    5. System.out.println("请输入饮料类型:");
    6. Scanner scanner = new Scanner(System.in);
    7. String next = scanner.next();
    8. Drink drink = DrinkFactory.getDrink(next);
    9. if(drink==null){
    10. System.out.println("对不起!没有您输入的饮料类型。");
    11. }else {
    12. drink.taste();
    13. }
    14. }
    15. }

    打完收工

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    wufenxia 2021-10-12 12:48

    这个实现过程好像对着呢,我这两年没做Java,家里没有环境写不了代码

    回复
    33741 2021-10-13 03:41

    为什么是return new coffee呀 不可以直接return coffee()嘛

    回复
    Mattie chen 回复 33741 2021-10-13 04:04

    return new Coffee()返回的是一个对象呀,题目不是说根据传入的饮料英文名称创建 不同的饮料对象,并返回该对象嘛

    回复
    展开全部6条评论
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月16日
  • 已采纳回答 10月12日
  • 修改了问题 10月12日
  • 创建了问题 10月12日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部