java编程学习 求大神看看下面程序。“添加商品方法”是用构造方法写的,

在运行<添加商品>的功能的时候,为什么每次都是最新输入的商品信息会覆盖前面输入的商品信息?而我将构造方法改成用自定义方法,就不会出现这种情况呢?程序:importjava... 在运行<添加商品>的功能的时候,为什么每次都是最新输入的商品信息会覆盖前面输入的商品信息?而我将构造方法改成用自定义方法,就不会出现这种情况呢?
程序:
import java.util.Scanner;
import java.util.ArrayList;
class Commodity{//商品类
private String commodityCode;//商品条码
private String commodityName;//商品名称
private double buyingPrice;//商品进价
private double sellingPrice;//商品卖价
private int inventorySum=0;//库存总数
public void setCommodityCode(String code){this.commodityCode=code;}
public String getCommodityCode(){return this.commodityCode;}
public void setCommodityName(String name){this.commodityName=name;}
public String getCommodityName(){return this.commodityName;}
public void setBuyingPrice(double price){this.buyingPrice=price;}
public double getBuyingPrice(){return buyingPrice;}
public void setSellingPrice(double price){this.sellingPrice=price;}
public double getSellingPrice(){return sellingPrice;}
public void setInventorySum(int sum){this.inventorySum=this.inventorySum+sum;}
public int getInventorySum(){return inventorySum;}
public String toString(){
String str="\t"+commodityCode+"\t"+commodityName+"\t"+inventorySum+"\t"+buyingPrice+"\t"+sellingPrice;
return str;
}
}
class SystemAction{//功能类
ArrayList <Commodity> arrList=new ArrayList <Commodity>();
//添加商品方法:
SystemAction(String code,String name,double buyingPrice,double sellingPrice,int shuliang){
Commodity goods=new Commodity();
goods.setCommodityCode(code);
goods.setCommodityName(name);
goods.setBuyingPrice(buyingPrice);
goods.setSellingPrice(sellingPrice);
goods.setInventorySum(shuliang);
arrList.add(goods);
System.out.println(arrList);
System.out.println(goods);
}
}
public class InventoryManagementSystem{//主程序类
public static void main(String args[]){
Scanner in=new Scanner(System.in);
System.out.println("------欢迎使用本系统!------");
boolean boo=true;
do{
System.out.println("请选择您要执行的操作:\n101:添加商品\n102:查询商品"+
"\n103:修改商品信息\n104:删除商品\n105:查看库存\n106:统计营业额\n107:统计利润"+
"\n108:退出系统");
int sel=in.nextInt();
switch(sel){
case 101:
System.out.println("请输入商品编码:");
String code=in.next();
System.out.println("请输入商品名称:");
String name=in.next();
System.out.println("请输入商品进价:");
double buyPrice=in.nextDouble();
System.out.println("请输入商品卖价:");
double sellPrice=in.nextDouble();
System.out.println("请输入商品进货数量:");
int shuliang=in.nextInt();
new SystemAction(code,name,buyPrice,sellPrice,shuliang);
break;
}
}while(boo);
}
}
展开
 我来答
若以下回答无法解决问题,邀请你更新回答
匿名用户
2016-08-31
展开全部
应该说,每次都new一个实例,就不会 。。。。。。。。。。。
追问
还是不明白╮(╯▽╰)╭
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式