m0_65990300 2023-04-18 14:52 采纳率: 66.7%
浏览 66
已结题

java球梆梆 java球梆梆

img

img

img

结果与图片一致

结果与图片一致
结果与图片一致
结果与图片一致
结果与图片一致

  • 写回答

2条回答 默认 最新

  • Mini厂程序员 2023-04-18 22:36
    关注

    新增IPrice接口并定义getPrice方法

    package com.test;
    
    public interface IPrice {
    
        public double getPrice();
    
    }
    
    
    

    新增Ingredient类并继承IPrice接口,类中定义name、price字段,getName属性,并实现getPrice方法

    package com.test;
    
    public class Ingredient implements IPrice{
    
        private String name;
    
        private double price;
    
        public Ingredient(String name, double price) {
            this.name = name;
            this.price = price;
        }
    
        @Override
        public double getPrice() {
            return this.price;
        }
    
        public String getName() {
            return this.name;
        }
    }
    
    
    

    新增Ingredients接口并定义addIngredient、getIngredients方法

    package com.test;
    
    import java.util.ArrayList;
    
    public interface Ingredients {
    
        public void addIngredient(Ingredient ingredient);
    
        public ArrayList<Ingredient> getIngredients();
    
    }
    
    
    

    新增Meal并实现IPrice、Ingredients方法,类中定义name、price、ingredients属性并实现getPrice、addIngredient、getIngredients方法,新增getName方法

    package com.test;
    
    import java.util.ArrayList;
    
    public class Meal implements IPrice, Ingredients {
    
        private String name;
    
        private double price;
    
        private ArrayList<Ingredient> ingredients = new ArrayList<>();
    
        @Override
        public double getPrice() {
            double p = 0.0;
            for (Ingredient ingredient : ingredients) {
                p += ingredient.getPrice();
            }
            return p;
        }
    
        @Override
        public void addIngredient(Ingredient ingredient) {
            ingredients.add(ingredient);
        }
    
        @Override
        public ArrayList<Ingredient> getIngredients() {
            return this.ingredients;
        }
    
        public String getName() {
            return this.name;
        }
    
    }
    
    
    

    新增测试类

    package com.test;
    
    import java.util.Objects;
    import java.util.Scanner;
    
    public class MainTest {
    
        public static void main(String[] args) {
            Meal Dinner = new Meal();
            while (true) {
                Scanner scanner = new Scanner(System.in);
                System.out.print("Add an ingredient to the meal: ");
                String name = scanner.next();
                System.out.print("Enter the price (double): ");
                double price = scanner.nextDouble();
                Dinner.addIngredient(new Ingredient(name, price));
                System.out.print("Do you want to add more ingredients? (enter stop to stop): ");
                String operation = scanner.next();
                if (Objects.equals("stop", operation)) {
                    break;
                }
            }
            System.out.print("Dinner with ingredient:");
            for (Ingredient ingredient : Dinner.getIngredients()) {
                System.out.print(ingredient.getName());
                System.out.print(" - ");
                System.out.print(ingredient.getPrice());
                System.out.print("; ");
            }
            System.out.print(" Total bill: ");
            System.out.print(Dinner.getPrice());
        }
    
    }
    
    
    

    运行结果

    Add an ingredient to the meal: rice
    Enter the price (double): 1
    Do you want to add more ingredients? (enter stop to stop): yes
    Add an ingredient to the meal: beaf
    Enter the price (double): 40
    Do you want to add more ingredients? (enter stop to stop): yes
    Add an ingredient to the meal: tomato
    Enter the price (double): 6
    Do you want to add more ingredients? (enter stop to stop): stop
    Dinner with ingredient:rice - 1.0; beaf - 40.0; tomato - 6.0;  Total bill: 47.0
    Process finished with exit code 0
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月28日
  • 已采纳回答 4月20日
  • 创建了问题 4月18日

悬赏问题

  • ¥35 MIMO天线稀疏阵列排布问题
  • ¥60 用visual studio编写程序,利用间接平差求解水准网
  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?
  • ¥15 win10权限管理,限制普通用户使用删除功能
  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)
  • ¥65 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?