首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

为了避免one和two相互影响,小弟我是不是应该使用这样的方式创建one和two

2014-01-13 
为了避免one和two相互影响,我是不是应该使用这样的方式创建one和two?如何避免变量不相互影响?我有一个类On

为了避免one和two相互影响,我是不是应该使用这样的方式创建one和two?
如何避免变量不相互影响?
我有一个类Oneclass,
class Oneclass {
int a;
Oneclass(int x1) {
a=x1;
}
}

int x = 50;
创建两个个实例:
Oneclass one = new Oneclass(x);
Oneclass two = new Oneclass(x);
当我在程序后面通过one.a = 100;修改了one的值,由于two也是引用x的地址创建的,所以two.a也会跟随变为100,尽管我没有直接修改two的值。
为了避免one和two相互影响,我是不是应该使用这样的方式创建one和two?
Oneclass one = new Oneclass(new Integer(x));
Oneclass two = new Oneclass(new Integer(x));
[解决办法]
int x = 50;
创建两个个实例:
Oneclass one = new Oneclass(x);
Oneclass two = new Oneclass(x);
当我在程序后面通过one.a = 100;修改了one的值,由于two也是引用x的地址创建的,所以two.a也会跟随变为100,尽管我没有直接修改two的值。

不对吧?
[解决办法]
在java里,给自定义对象赋值实际上是赋值引用。one 和 two是两个不同的对象 各自有不同的属性值 你修改one 不影响two。
除非你这样
Oneclass one=new Oneclass(x);
Oneclass two=one;

后面的程序你修改one.a=100 two所指向跟one是同一个对象,所以two会跟着变动。

热点排行