【发布时间】:2015-08-30 04:38:56
【问题描述】:
我正在编写一个Polygon 的类,经过考虑后我决定使用x 和y 值的数组并保存点。
出于懒惰,这让我想到了这个:
int[] x, y;
x = y = new int[NUM];
我知道数组是类,不被视为原始数组,那么这里会发生什么?
一方面,x 和 y 是原始数组,因此该数组被部分视为原始数组。所以它可能会将值复制到一个新数组中,就像普通的int:
int x, y;
x = y = 5;
但如果它不是原始的,那么x 和y 将指向内存中的相同位置并且具有相同的变量。当您编辑一个时,第二个也将被编辑。
MyClass x, y;
x = y = new MyClass(value);
那么,我的问题是,以下哪个想法是正确的?
【问题讨论】:
-
你可以在 Eclipse 中输入这个,运行它并找出 ;)
-
附带说明,我会避免使用 x = y = z;
-
@vertti true。这总是会降低代码的可读性,而且我们可能从 1980 年开始就不必节省代码空间。