Java-类的练习

本文详细描述了如何在Java中创建一个Cart类来管理购物车中的商品,包括商品数据结构(如Goods类),以及添加、删除商品、更新数量和计算总价的方法。
摘要由CSDN通过智能技术生成

购物车中存放商品(id,名称,价格,数量)
实现商品数据的添加、删除、总金额结算操作,添加商品时,如果商品存在,修改数量
通过get和set方法设置相关属性

~~代码如下:

public class Goods {
    // id,名称,价格,数量
    private int id;
    private String name;
    private double price;
    private int num;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public double getPrice() {
        return price;
    }

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

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }


    @Override
    public String toString() {
        return "Goods{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", price=" + price +
                ", num=" + num +
                '}';
    }
}
public class Cart {

    //定义商品数组
    private Goods[] goodsArr;


    //get/set 方法
    public Goods[] getGoodsArr() {
        return goodsArr;
    }

    public void setGoodsArr(Goods[] goodsArr) {
        this.goodsArr = goodsArr;
    }

    // 添加商品时,如果商品存在,修改数量
    public void addGoods(Goods goods) {
        for (int i = 0; i < goodsArr.length; i++) {
            if (goodsArr[i] == null) {
                continue;
            }
            if (goodsArr[i].getId() == goods.getId()) {
//                goodsArr[i].setNum(goodsArr[i].getNum() + goods.getNum());
                int newNum = goodsArr[i].getNum() + goods.getNum();
                goodsArr[i].setNum(newNum);
                // break;
                return;//结束循环
            }
        }


        for (int i = 0; i < goodsArr.length; i++) {
            if (goodsArr[i] == null) {
                goodsArr[i] = goods;
                break;
            }
        }
    }

    /**
     * 根据id删除
     *
     * @param id
     */
    public void deleteGoods(int id) {
        for (int i = 0; i < goodsArr.length; i++) {
            if (goodsArr[i] == null) {
                continue;
            }
            if (goodsArr[i].getId() == id) {
                goodsArr[i] = null;
            }
        }
    }

    /**
     * 计算总价
     *
     * @return
     */
    public double totalPrice() {
        double total = 0;
        for (int i = 0; i < goodsArr.length; i++) {
            if (goodsArr[i] == null) {
                continue;
            }
            total += goodsArr[i].getNum() * goodsArr[i].getPrice();
        }
        return total;
    }

    public void printInfo() {
        for (Goods goods : goodsArr) {
            if (goods == null) {
                continue;
            }
            System.out.println(goods);
        }
    }
}
public class App {

    public static void main(String[] args) {
        Cart cart = new Cart();
        Goods[] goodsArr = new Goods[10];
        cart.setGoodsArr(goodsArr);

        Goods goods = new Goods();
        goods.setId(1);
        goods.setName("金项链");
        goods.setNum(10);
        goods.setPrice(12000);

        cart.addGoods(goods);

        Goods goods2 = new Goods();
        goods2.setId(2);
        goods2.setName("金戒指");
        goods2.setNum(1);
        goods2.setPrice(4800);

        Goods goods3 = new Goods();
        goods3.setId(3);
        goods3.setName("金手镯");
        goods3.setNum(1);
        goods3.setPrice(5800);
        cart.addGoods(goods3);

        cart.addGoods(goods2);

        cart.printInfo();

        double v = cart.totalPrice();
        System.out.println(v);

        cart.deleteGoods(1);
        cart.printInfo();
    }
}
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值