Java面向对象案例——购物车
需求:
模拟购物车的功能,需要实现添加物品到购物车中去,同时需要提供修改商品的购买数量,结算商品价格功能。
分析:
1.购物车中每个商品都是一个对象,需要定义一个商品类
public class goods {int id;//编号String name;//名称double price;//价格int buyNumber;//购买数量
}
2.购物车本身也是一个对象,可以用数组代表它。
我们先假设购物车的容量是100;
则定义数组 goods[] shopCar = new goods[100]
3.完成界面架构,让用户选择操作的功能
添加商品到购物车addGoods(shopCar,sc);
查询购物车中的商品queryGoods(shopCar);
修改商品的购买数量updateGoods(shopCar,sc);
结算购买商品的金额payGoods(shopCar);
实战代码
package oop;import java.util.Scanner;public class ShopCarTest {public static void main(String[] args){//1.定义商品类,用于后期创建商品对象//2.定义购物车对象,使用一组数组对象表示。goods[] shopCar = new goods[100];//3.搭建操作建构while(true) {System.out.println("请您选择如下命令进行操作:");System.out.println("添加商品到购物车:add");System.out.println("查询购物车中的商品:query");System.out.println("修改商品购买数量:update");System.out.println("结算购买商品的金额:pay");Scanner sc = new Scanner(System.in);System.out.println("请输入您的命令:");String command = sc.next();switch(command){case "add"://添加商品到购物车addGoods(shopCar,sc);break;case "query"://查询购物车中的商品queryGoods(shopCar);break;case "update"://修改商品的购买数量updateGoods(shopCar,sc);break;case "pay"://结算购买商品的金额payGoods(shopCar);break;default:System.out.println("没有该项操作");break; }}
}//完成商品添加到购物车的功能public static void addGoods(goods[] shopCar,Scanner sc){//录入用户输入的商品信息System.out.println("请输入您要购买的商品编号(不重复)");int id = sc.nextInt();System.out.println("请输入您要购买的商品名称");String name = sc.next();System.out.println("请输入商品价格");double price = sc.nextDouble();System.out.println("请输入购买的商品数量");int buyNumber = sc.nextInt();//将商品信息封装成一个商品对象goodsgoods s = new goods();s.id = id;s.name = name;s.price = price;s.buyNumber = buyNumber;//将商品对象添加至购物车for(int i = 0; i < shopCar.length; i++){if(shopCar[i]==null) {//此位置无元素存入shopCar[i] = s;break;}}System.out.println("您的商品" + s.name +"添加至购物车完成了! ");}//查询购物车中的商品public static void queryGoods(goods[] shopCar){System.out.println("===============查询购物车信息如下============");System.out.println("编号\t名称\t\t价格\t\t数量");for(int i = 0 ; i < shopCar.length; i++){goods s = shopCar[i];if(shopCar[i]!=null) {//展示这个商品类型System.out.println(s.id + "\t" + s.name +"\t\t" + s.price +"\t\t"+s.buyNumber);}else break;}}public static void updateGoods(goods[] shopCar, Scanner sc){while(true) {System.out.println("请输入您要更改的商品id");int id = sc.nextInt();goods s = getGoodsById(shopCar,id);//根据id查询出要修改的商品对象if(s == null){//没有商品System.out.println("对不起,没有购买商品!");}else {//说明存在对象可以进行修改System.out.println("请您输入"+s.name+"商品最新购买数量");int buyNumber = sc.nextInt();s.buyNumber = buyNumber;System.out.println("修改完成");queryGoods(shopCar);break;}}}public static goods getGoodsById(goods shopCar[],int id){for(int i = 0; i < shopCar.length; i++ ){goods s = shopCar[i];if(s != null){//判断这个商品是否是我们要找的if(s.id == id)return s;}else return null;//找完了所有的商品都没有找到}return null;//访问完了100个商品都未找到}//结算商品的购买金额public static void payGoods(goods[] shopCar){queryGoods(shopCar);double money = 0;for(int i = 0; i <shopCar.length; i++){goods s = shopCar[i];if(s != null) {money += s.price *s.buyNumber ;}else break;}System.out.println("所购买的商品总金额是:" + money);}
}
添加商品操作
查询商品操作
更改商品数量操作
结算购买商品的金额
Java面向对象案例——购物车相关推荐
- java基础案例-购物车模拟
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.需求 二.分析 三.代码 四.效果图 五.总结 一.需求 1.模拟购物车模块的功能,需要实现添加商品到购物车中去,同时需 ...
- 通过两个案例,从C语言过渡到Java面向对象编程
⭐欢迎来到JAVA语法专栏,一起学习,一起进步⭐ 金九银十秋招季,也是开学的时候,不少同学开了JAVA这门课.一起来看看这两个案例来熟悉熟悉吧. 一.案例来源 案例源自Java基础案例教程一书,现为学 ...
- Java面向对象之多态(来源于身边的案例)
2019年1月3日 星期四 Java面向对象之多态(来源于身边的案例) 1. 为什么要用多态? 1.1 多态是面向对象的三大特性之一 1.2 多态是基于接口设计的模型 1.3 多态具有横向扩展特性 1 ...
- 《Java面向对象编程(阿里云大学)》笔记(文档+思维导图)
课程链接:https://edu.aliyun.com/course/1011 (还是建议去看课程,笔记仅供参考. 由于文中的所有内容均为手敲,并且有些代码并未验证,因此如有错误,烦请指出~ 谢谢~~ ...
- 代码检查规则:Java语言案例详解
本节课程为<代码检查规则:Java语言案例详解>, 通常情况下Java的代码检查规则可以分为以下十类: 接下来,让我们具体来看看每个分类的内容. 一.源文件规范 该类规范主要从文件名.文件 ...
- java进阶案例下载_java进阶案例
java进阶案例: 数据类型,字符,数值,范围,布尔 :byte -128~127. 面向对象:protect :重载与构造 (一). this封装:static:继承:多态: 1.方法覆盖:supe ...
- Java面向对象基础学习笔记(构造、重载、继承、多态、抽象类、接口、模块)
Java面向对象编程包含哪些内容? 怎么理解面向对象编程? 现实生活中,我们定义了"人"的抽象概念,这就是类class,生活中的每一个具体的人就是实例instance. class ...
- JAVA面向对象的基础知识快速通过---自学笔记(一)
网上的教学很多,看视频非常浪费时间,看文字快点,快速捡起知识点,我只根据我学到的,集各种教学学习,把精华提取出来,把主要概念通俗的展示出来,基本常识就不介绍了,其他的资料谁看了都能看懂,只是java特 ...
- 三篇文章彻底搞懂Java面向对象之一
写在前面,Java基础系列文章都是作者基于b站尚硅谷的Java基础视频所做的笔记,没有时间的同学可以认真看看,如果有时间的同学,还是建议看看视频,毕竟笔记说到底还是自己的东西,每个人的习惯也是不一样的 ...
最新文章
- rocketmq python 一个进程订阅多个topic_玩转不同业务场景,这些RabbitMQ特性会是得力助攻...
- mysql 多表查询练习题_mysql多表查询练习
- c++使用netsh命令_渗透常用命令IPC$内网(一)
- 构建和运行Java 8支持
- rman copy相关
- linux配置部署nginx
- C#6中的新增功能 【Unity3D亲测】
- jQuery静态方法(each、map、isFunction, isWindow, isArray, .trim(), .holdReady())
- 计算机桌面黑屏有鼠标,win7系统启动黑屏只有显示鼠标指针怎么办(图文)
- 十进制转换为三进制数_python3实现
- B - The Suspects(并查集)详解
- 对话 UNIX: 使用 Screen 创建并管理多个 shell
- 【系】微信小程序云开发实战坚果商城-扩展篇
- 解决chrt: failed to set pid 0‘s policy: Operation not permitted
- Jquery监听radio的变化以及获取radio选中值
- 云原生可观测性平台deepflow部署
- matlab 测量矩阵,压缩感知中的常见测量矩阵及其MATLAB实现代码
- 起源鸿蒙虚无等级,《刺客信条:起源》或为开放世界游戏 最高等级只有40
- chrome 窗体高度_控制Chrome浏览器窗口最小宽度和高度
- zabbix监控EMC VNX5500等系列存储