Java 之不小心修改对象值

Posted auspice

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 之不小心修改对象值相关的知识,希望对你有一定的参考价值。


Java 创建对象是一个映射的过程,类似于C中的指针,在堆中new 一块空间,再将变量名对应至那个空间。
String a = new String("空间");
String b = a;
a和b指向同一块区域String (“空间”)。
String是不能修改静态域final,一旦初始化就不能修改。
String还好,但这个在类中要特别注意。
一定一定不要写返回引用可变对象的访问器方法。
class Employee

private Date hireDay;
...
public Date getHireDay()

//return hireDay;//错误
return (Date) hireDay.clone();//正确,返回一个复制的新对象

Date date = employee.getHireDay();//employee 是Employee的一个实例

修改date也能同时修改employee中的hireDay,因为他们引用同一个Date对象。

 

再如下面例子:
public static void tripleSalary(Employee x)
x.raiseSalary(200);

调用
harry = new Employ(...);
tripleSalary(harry);

 技术图片

 

以上是关于Java 之不小心修改对象值的主要内容,如果未能解决你的问题,请参考以下文章