簡體   English   中英

Java中的方法“在分配對象后傳遞引用”和“使用new關鍵字傳遞對象”之間的區別?

[英]Difference between “passing reference after assigning an object” and “passing object using new keyword” to a method in java?

有什么區別?

假設我們在Java中有一個方法如下:

void demoMethod(MyClass mc){
    // some operations
}

第一類:

demoMethod(new MyClass()); // directly passing  an object

第二種類型:

MyClass mc = new MyClass();
demoMethod(mc); // passing reference of an object

該方法在該參考上的行為沒有差異。 第一個代碼可以在語義上轉換為第二個。 最終,使用new MyClass()創建的對象需要存儲在某個地方,以便可以將其重新加載並傳遞給該方法。

但是,使用第二個代碼,您可以重復使用引用。

對於demoMethod沒有任何區別。 實際上,在兩種情況下,您僅傳遞參考。

但是,如果要在demoMethod在調用方法中執行某些操作之后使用該信息,則不能在第一種類型中執行此操作。

假設您的demoMethodMyClass對象的屬性設置為true或false,您將無法找出其值設置為什么。

因此,您可以執行類似

demoMethod(mc);
if(mc.isMyProperty()==true)
   System.out.println("mc is changed");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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