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