栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

案例:Java多态实现饮料购买咖啡、可乐、矿泉水2.0

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

案例:Java多态实现饮料购买咖啡、可乐、矿泉水2.0

1.编写程序实现软料购买: 编写程序,接收用户输入的信息,选择购买的饮料。 可供选择的饮料有:咖啡、矿泉水和可乐。 其中,购买咖啡时可以选择:加糖、加奶还是什么都不加。 购买可乐时可以选择:买可口可乐还是百事可乐。

本次编程我们将分成多个类来实现:

创建Drink类:
public abstract class Drink {
    //定义饮料的属性
    private String name;//名称
    private int volume;//容量
    private int price;//价格

    //定义getXxx()和setXxx()方法
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getVolume() {
        return volume;
    }

    public void setVolume(int volume) {
        this.volume = volume;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }

    //定义有参的构造方法
    public Drink(String name, int volume,int price) {
        this.name = name;
        this.volume = volume;
        this.price=price;
    }

    //定义无参的构造方法
    public Drink() {
    }

    //定义抽象方法show()没有方法体
    public abstract void show();
}
 创建Coffee类继承Drink:
public class Coffee extends Drink {
    //定义咖啡的特有属性
    private String mixture;//添加物

    public String getMixture() {
        return mixture;
    }

    public void setMixture(String mixture) {
        this.mixture = mixture;
    }

    public Coffee(String name, int volume, String mixture, int price) {
        super(name, volume,price);
        this.mixture = mixture;
    }

    public Coffee() {

    }

    //重写show()方法
    @Override
    public void show() {
        System.out.println("名称:" + getName() + "n添加配料:" + mixture + "n容量:" + getVolume() + "n价格:" + getPrice()+"元");
    }
}
创建Cola类继承Drink:
public class Cola extends Drink{
private String type;
    //定义有参的构造方法
    public Cola(String name, int volume,int price,String type) {
        super(name, volume,price);
        this.type=type;
    }

    //定义无参的构造方法
    public Cola() {
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    //重写show()方法
    @Override
    public void show() {
        System.out.println("名称:" + getName() +"n种类:" + type + "n容量:" + getVolume() + "n价格:" + getPrice()+"元");
    }
}
创建Water类继承Drink: 
public class Water extends Drink {

    //定义有参的构造方法
    public Water(String name, int volume, int price) {
        super(name, volume, price);
    }

    //定义无参的构造方法
    public Water() {
    }

    //重写show()方法
    @Override
    public void show() {
        System.out.println("名称:" + getName() + "n容量:" + getVolume() + "n价格:" + getPrice());
    }
}
创建DrinkTest测试类(main):
//导Scanner包
import java.util.Scanner;
public class DrinkTest {
    public static void main(String[] args) {
        //创建键盘录入对象
        Scanner sc = new Scanner(System.in);
        while (true){
            System.out.print("请选择饮料(1、咖啡 2、矿泉水 3、可乐 0、退出):");
            int num = sc.nextInt();
            Drink drink;
            if (num==1){
                drink = new Coffee();
                drink.setName("咖啡");
                System.out.print("请输入购买的容量:");
                int volume = sc.nextInt();
                drink.setVolume(volume);
                System.out.print("请问是否要配料:(1、加糖 2、不加糖 3、什么都不加):");
                int num2 = sc.nextInt();
                if (num2==1){
                    ((Coffee) drink).setMixture("加糖");
                }else if (num2==2){
                    ((Coffee) drink).setMixture("加奶");
                }else if (num2==3){
                    ((Coffee) drink).setMixture("什么都不加");
                }else {
                    System.out.println("没有你想要的配料!");
                    continue;
                }
                System.out.println("您购买的信息如下:");
                drink.setPrice(6);
                drink.show();
            }else if (num==2){
                drink =  new Water("矿泉水",500,2);
                System.out.println("您购买的信息如下:");
                drink.show();
            }else if (num==3){
                drink = new Cola();
                drink.setName("可乐");
                System.out.print("请输入购买的容量:");
                int volume = sc.nextInt();
                drink.setVolume(volume);
                System.out.print("请输入购买可乐的种类:(1、百世可乐 2、可口可乐):");
                int num2 = sc.nextInt();
                if (num2==1){
                    ((Cola) drink).setType("百世可乐");
                }else if (num2==2){
                    ((Cola) drink).setType("可口可乐");
                }else {
                    System.out.println("没有你想要种类的可乐!");
                    continue;
                }
                System.out.println("您购买的信息如下:");
                drink.setPrice(3);
                drink.show();
            }else if (num==0){
                System.out.println("欢迎下次光临!");
                break;
            }else {
                System.out.println("没有你想要的饮料!");
            }
        }

    }
}
 运行结果:

请选择饮料(1、咖啡 2、矿泉水 3、可乐 0、退出):1
请输入购买的容量:50
请问是否要配料:(1、加糖 2、不加糖 3、什么都不加):1
您购买的信息如下:
名称:咖啡
添加配料:加糖
容量:50
价格:6元
请选择饮料(1、咖啡 2、矿泉水 3、可乐 0、退出):1
请输入购买的容量:30
请问是否要配料:(1、加糖 2、不加糖 3、什么都不加):2
您购买的信息如下:
名称:咖啡
添加配料:加奶
容量:30
价格:6元
请选择饮料(1、咖啡 2、矿泉水 3、可乐 0、退出):1
请输入购买的容量:34
请问是否要配料:(1、加糖 2、不加糖 3、什么都不加):3
您购买的信息如下:
名称:咖啡
添加配料:什么都不加
容量:34
价格:6元
请选择饮料(1、咖啡 2、矿泉水 3、可乐 0、退出):2
您购买的信息如下:
名称:矿泉水
容量:500
价格:2
请选择饮料(1、咖啡 2、矿泉水 3、可乐 0、退出):3
请输入购买的容量:100
请输入购买可乐的种类:(1、百世可乐 2、可口可乐):1
您购买的信息如下:
名称:可乐
种类:百世可乐
容量:100
价格:3元
请选择饮料(1、咖啡 2、矿泉水 3、可乐 0、退出):3
请输入购买的容量:45
请输入购买可乐的种类:(1、百世可乐 2、可口可乐):2
您购买的信息如下:
名称:可乐
种类:可口可乐
容量:45
价格:3元
请选择饮料(1、咖啡 2、矿泉水 3、可乐 0、退出):1
请输入购买的容量:43
请问是否要配料:(1、加糖 2、不加糖 3、什么都不加):4
没有你想要的配料!
请选择饮料(1、咖啡 2、矿泉水 3、可乐 0、退出):3
请输入购买的容量:234
请输入购买可乐的种类:(1、百世可乐 2、可口可乐):3
没有你想要种类的可乐!
请选择饮料(1、咖啡 2、矿泉水 3、可乐 0、退出):0
欢迎下次光临!

Process finished with exit code 0


 本次编程相对于1.0版本的Java多态实现饮料购买咖啡、可乐、矿泉水变得更加灵活方便,与我们现实生活相符合。

到底啦!给靓仔点个关注吧!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/984716.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号