Java 13 面向对象的编程 小案例 实现购物车

 

 

 

 Car类

package com.heima.Object;

public class Car {
    //属性(成员变量)
    String name;
    double price;
    //行为(方法)
    public void start(){
        System.out.println(name+",价格是:"+price+"启动了~~~~");
    }

    public void run(){
        System.out.println(name+",价格是:"+price+"跑的很快~~~~");
    }
}
View Code

测试Car的Test类

package com.heima.Object;

public class Test {
    public static void main(String[] args) {
        //目标:自己设计的对象并使用
        //类名 对象名=new 类名();

        Car c=new Car();
        c.name="奔驰GLC";
        c.price=39.55;
        System.out.println(c.name);
        System.out.println(c.price);
        c.run();
        c.start();

        Car c1=new Car();
        c1.name="宝马";
        c1.price=38.88;
        System.out.println(c1.name);
        System.out.println(c1.price);

        c1.run();
        c1.start();
    }
}
View Code

 对象内存图

 

 

 

 

购物车小案例

 Article 商品类

package com.heima.Object;

public class Article {
    String name;
    double price;
    //购买数量
    int buyNumber;
}
View Code

Test1 测试类

package com.heima.Object;

import java.util.Scanner;

/*
需求:模拟购物车的功能
1 定义一个商品类:Artical(name,price,buyNumber)
2 定义一个数组容器存储商品对象,代表购物车对象
* */
public class Test1 {
    public static void main(String[] args) {
        //a 定义一个数组存储商品对象 ,代表购物车
        Article[] shopCar = new Article[10];

        //2 让用户选择功能
        while (true) {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入指令");
            System.out.println("添加商品:add");
            System.out.println("查看商品:query");
            System.out.println("修改商品数量:update");
            System.out.println("结算价格:pay");
            //接受用户指令
            String command = sc.next();
            switch (command) {
                case "add":
                    System.out.println("添加商品");
                    //添加商品方法
                    addArticle(shopCar);
                    break;
                case "query":
                    System.out.println("查询商品");
                    queryArticle(shopCar);
                    break;
                case "update":
                    System.out.println("更新商品数量");
                    updateArticle(shopCar);
                    break;
                case "pay":
                    System.out.println("支付商品价格");
                    payArticle(shopCar);
                    break;
                default:
                    System.out.println("输入指令有错误");
            }
        }
    }

    //添加商品进入购物车
    private static void addArticle(Article[] shopCar) {
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入商品的名称: ");
        String name = sc.next();

        System.out.println("请输入商品的价格: ");
        double price = sc.nextDouble();

        System.out.println("请输入商品的数量: ");
        int buyNumber = sc.nextInt();

        //创建一个商品对象,封装折写数据
        Article a = new Article();
        a.name = name;
        a.price = price;
        a.buyNumber = buyNumber;
        System.out.println(a.name);
        //添加进入购物车; 判断购物车内部值是否为null  为null 才能赋值
        for (int i = 0; i < shopCar.length; i++) {

            if (shopCar[i] == null) {
                //将创建的商品对象添加进入购物车
                shopCar[i] = a;
                //退出循环
                break;
            }
        }
        System.out.println("商品添加进入购物车成功");
    }

    //查看购物车中的商品
    private static void queryArticle(Article[] shopCar) {
        System.out.println("商品名称\t商品价格\t商品商量\t");
        //展示购物车信息
        for (int i = 0; i < shopCar.length; i++) {
            //取出购物车中的物品
            Article a = shopCar[i];
            //购物车中存在物品
            if (a != null) {
                System.out.println("hahfah");
                System.out.println("商品名称\t"+a.name+"商品价格\t" + a.price + "商品商量\t" + a.buyNumber);
            } else {
                System.out.println("没找到指定的商品");
                break;
            }
        }
    }

    //修改购物车中商品的数量
    private static void updateArticle(Article[] shopCar) {
        //接入修改商品的数量
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你要修改数量的商品名称");
        //接受输入商品的名称
        String name = sc.next();
        for (int i = 0; i < shopCar.length; i++) {
            Article a = shopCar[i];
            //购物车中存在商品
            if (a != null) {
                //商品存在  且 和商品输入的名称相同
                //a.equals(b)  equals的作用是对字符串进行比较,返回boolean类型,一致返回true,不一致返回false
                if (a.name.equals(name)) {
                    System.out.println("请输入你要修改商品的数量");
                    //获取输入的商品数量
                    int buyNumber=sc.nextInt();
                    a.buyNumber = buyNumber;
                    System.out.println("购买商品数量修改了");
                    break;
                }
            } else {
                System.out.println("购物车中没有该商品信息");
                break;
            }
        }
    }

    private static void payArticle(Article[] shopCar) {
        //总金额
        double money=0;
        //结算商品中的总金额
        for (int i = 0; i < shopCar.length; i++) {
            Article a=shopCar[i];
            if(a!=null){
                money+=(a.price*a.buyNumber);
            }else{
                break;
            }
        }
        System.out.println("本次商品购买的总价格是 : "+money);
    }
}
View Code

 

 

 

posted @ 2022-06-22 14:30  还有什么值得拥有  阅读(52)  评论(0编辑  收藏  举报