int m=d.getNum();
array[i].setNum(array[i].getNum() + m);和
array[i].setNum(array[i].getNum() + d.getNum);这两个语句运行之后d中Num的值都改变了,为什么啊?不是说第一个只是传值,第二个传地址 吗?求教,谢谢!3Q

解决方案 »

  1.   

    代码不全
    1、d 的类型定义中 getNum()是怎么写的
    2、array[] 的类型是不是  d.class 的数组?
    3、array[i] 是不是等于 d ?
      

  2.   


    import java.util.*;public class Disk {
    private int ID; private String name; private double price; private int num; private Date time; public Disk(int id, String name, double price, int num) {
    super();
    ID = id;
    this.name = name;
    this.price = price;
    this.num = num;
    } public int getID() {
    return ID;
    } public void setID(int id) {
    ID = id;
    } public String getName() {
    return name;
    } public void setName(String name) {
    this.name = name;
    } public int getNum() {
    return num;
    } public void setNum(int num) {
    this.num = num;
    } public double getPrice() {
    return price;
    } public void setPrice(double price) {
    this.price = price;
    } public Date getTime() {
    return time;
    } public void setTime(Date time) {
    this.time = time;
    } public void print() { }}array[]和d都是Disk的对象
      

  3.   

    我觉得是因为 array[] 里包含了d对象的缘故。所以当你遍历完 array, d的值就变了
      

  4.   

    d什么时候赋值的?代码?是不是有d=array[i]或者array[i]=d
      

  5.   

    代码依然不全 不要只把disk类 发上来 看看main()怎么写的