做的是一个超市购物的DOS系统,其中有一个老板添加货物的模块
- public static void addNew() {
- Goods myGood=new Goods();
- System.out.println("请添加商品");
- System.out.println("请输入商品名称");
- myGood.name=enterString();
- myGood.ID=getNumber();
- System.out.println("请输入商品单价");
- myGood.price=enterDouble();
- list.add(myGood);
- }
复制代码
这是老板查账的逻辑
- public static void check() {
- for (;;) {
- System.out.println("老板欢迎您!您要干嘛呀?");
- //库存清单,添加新商品
- System.out.println("1:流水查询 2:总收入查询 3:库存清单 4:添加新商品 5:退出查询");
- int choose = enterNumber();
- switch (choose) {
- case 1:
- checkFlow();
- break;
- case 2:
- checkTotalMoney();
- break;
- case 3:
- printTicket();
- return;
- case 4:
- addNew();
- return;
- case 5:
- System.out.println("欢迎老板下次光临!");
- break;
- default:
- System.out.println("您输入的内容有误,请重新输入!");
- break;
- }
- }
复制代码
敲完后,我原本以为会出一个bug,如果添加了多个货物,myGood会覆盖掉原有的存在ArrayList中的值,结果一运行,却是对的,思考了一会,我认为是这个原因,ArrayList中存的是直接就是Goods对象的地址,已经和myGood这个引用没有关系了,不知道理解的对不对,希望大家一起讨论 |
|