解决方案 »

  1.   

    如果你直接返回hireDay,那么其他人就可以通过引用修改这个hireDay,而你要是返回克隆对象的话,别人没办法对原始的hireDay进行修改
      

  2.   

    感谢你的回复,你的意思就是,如果返回了hireDay,那么这个返回的hireDay前面本来加上的private修饰就白加了是吗?private hireDay外部不能修改,但是把它返回出来了在外面就可以更改hireDay的值了?
      

  3.   

    书上这句话意思不贴切: "d和harry.hireDay引用同一个对象",   实际上d 与 harry.hireDay完全就是一个东西, 同一个引用, 指向同一个内存对象
      

  4.   

    感谢你的回复,你的意思就是,如果返回了hireDay,那么这个返回的hireDay前面本来加上的private修饰就白加了是吗?private hireDay外部不能修改,但是把它返回出来了在外面就可以更改hireDay的值了?
    private 外不是hi不能修改,但是你的get方法把引用泄露了,所以外部可以通过get方法得到hireDay引用,还是可以修改,所以很多时候都是返回clone对象来放在被修改的