[英]Why we use new to call a method in this code?
考慮以下Java代碼。
public class A {
public static void main (String [] args){
Temp p = new Temp();
p.name = "Name";
new A().changeValue(p);
System.out.print(p.name);
}
public void changeValue(Temp t){
t.name ="changeValue";
}
}
class Temp{
String name;
}
好吧,我對這一行感到困惑: new A().changeValue(p);
這是我第一次看到這樣的線條! 這個匿名對象是? 還請輸出什么! 請分步說明。
謝謝
new A().changeValue(p);
這個匿名對象是?
是的,您正在創建A
的新實例,而沒有將其分配給變量名。 然后,您立即在該對象上調用changeValue()
。 請注意,您可以將其重寫為兩行,以得到相同的結果:
A a = new A();
a.changeValue(p);
實際上,這是首選方式。
相當於
A temporary = new A();
temporary.changeValue(p);
基本上,由於changeValue
不是static
,因此需要A
的實例來調用該方法。
因此,代碼將創建一個實例,並直接在剛創建的對象上調用一個方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.