Java 入门16 面向对象实现之前的小案例购物车
Goods 商品类

package com.heima.Shop; public class Goods { private String name; private double price; private int buyNumber; //生成 无参构造器 public Goods() { } //生成有参构造器 public Goods(String name, double price, int buyNumber) { this.name = name; this.price = price; this.buyNumber = buyNumber; } //生成get/set方法 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 getBuyNumber() { return buyNumber; } public void setBuyNumber(int buyNumber) { this.buyNumber = buyNumber; } }
Test 测试类

package com.heima.Shop; import com.heima.scanner.Scan; import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer; import java.util.Scanner; //测试类 public class Test { public static void main(String[] args) { //创建数组 存储添加的商品 Goods[] arrShop = new Goods[10]; //获取输入流对象 while (true) { Scanner sc = new Scanner(System.in); System.out.println("add添加商品"); System.out.println("query查询商品"); System.out.println("update更新商品数量"); System.out.println("pay付款"); //获取输入的指令 String command = sc.next(); System.out.println(command); //创建Goods实例 //switch 判断指令 switch (command) { case "add": //执行添加商品的指令 addGoods(arrShop); System.out.println("add 指令执行成功"); break; case "query": queryGoods(arrShop); System.out.println("query指令执行成功"); break; case "update": updateGoods(arrShop); System.out.println("update指令执行成功"); break; case "pay": payGoods(arrShop); System.out.println("pay 指令执行成功"); break; default: System.out.println("指令有错误"); } } } private static void payGoods(Goods[] arrShop) { //存储计算的总金额 double allPrice = 0; for (int i = 0; i < arrShop.length; i++) { if (arrShop[i] != null) { allPrice += (arrShop[i].getPrice() * arrShop[i].getBuyNumber()); } else { break; } } System.out.println("付款金额" + allPrice); } private static void updateGoods(Goods[] arrShop) { Scanner sc = new Scanner(System.in); System.out.println("输入要修改的商品名称"); String name = sc.next(); for (int i = 0; i < arrShop.length; i++) { if (arrShop[i] != null) { if (arrShop[i].getName().equals(name)) { System.out.println("请输入要修改的数量"); int buyNumber = sc.nextInt(); arrShop[i].setBuyNumber(buyNumber); System.out.println(arrShop[i].getName() + "现在数量是" + arrShop[i].getBuyNumber()); break; } } else { System.out.println("没找到指定的商品"); break; } } } private static void queryGoods(Goods[] arrShop) { //获取要查询的商品名称 for (int i = 0; i < arrShop.length; i++) { if (arrShop[i] != null) { System.out.println("商品名称 : " + arrShop[i].getName() + "商品价格" + arrShop[i].getPrice() + "商品数量" + arrShop[i].getBuyNumber()); } else { break; } } } private static void addGoods(Goods[] arrShop) { System.out.println(111); System.out.println("请输入name"); Scanner sc = new Scanner(System.in); //获取name String name = sc.next(); System.out.println("请输入price"); //获取price double price = sc.nextDouble(); System.out.println("请输入buyNumber"); //获取数量 int buyNumber = sc.nextInt(); //实例化Goods对象 Goods a = new Goods(name, price, buyNumber); //循环遍历arrShop 如果值为null 则添加商品 for (int i = 0; i < arrShop.length; i++) { if (arrShop[i] == null) { arrShop[i] = a; break; } } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!