簡體   English   中英

為什么我們在代碼中使用new來調用方法?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM