• 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

     

  • 相关阅读:
    网站漏洞扫描工具Uniscan
    iOS 11开发教程(八)定制iOS11应用程序图标
    iOS 11开发教程(七)编写第一个iOS11代码Hello,World
    UDP转TCP隧道工具udptunnel
    iOS 11开发教程(六)iOS11Main.storyboard文件编辑界面
    Web服务评估工具Nikto
    iOS 11开发教程(五)iOS11模拟器介绍二
    网络数据修改工具netsed
    iOS 11开发教程(四)iOS11模拟器介绍一
    兼容IE getElementsByClassName取标签
  • 原文地址:https://www.cnblogs.com/lvlisn/p/16400445.html
Copyright © 2020-2023  润新知