0
我并不认为new
不会在实例变量已分配的情况下更改实例变量。新关键字的本地使用
我理解正确吗?
class Foo {
String name = "Java";
}
class Main {
public static void main(String args[]) {
Foo foos[] = { new Foo(), new Foo() };
foos[0].name = "bar";
for (Foo c : foos) c = new Foo();
for (Foo c : foos) System.out.println(c.name);
for (Foo c : foos) c.name = "baz";
for (Foo c : foos) System.out.println(c.name);
}
}
输出
bar
Java
baz
baz
在上面的例子中,new
更像铸造目的是相同的类已经它。这种行为的实际用途是什么?
“new”操作符只是在做它的工作,即创建新的对象。我在这里什么也看不到,需要解释。 –
这里你真的不清楚你的意思......你有3个'new'的用法 - 哪些是你感到惊讶的?这与地区有什么关系?你期望的结果是什么?你惊讶于'c = new Foo();'实际上并没有改变集合中的值吗?如果是这样,那么'new'就没有任何事情可做。 –
有四个独立变量'c'。除了第一个循环以外,没有重新分配。但是这对阵列没有影响。 – Albjenow