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+"跑的很快~~~~"); } }
测试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(); } }
对象内存图
购物车小案例
Article 商品类
package com.heima.Object; public class Article { String name; double price; //购买数量 int buyNumber; }
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); } }