[英]Difference between creating an object using new keyword and using clone method
[英]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
在調用方法中執行某些操作之后使用該信息,則不能在第一種類型中執行此操作。
假設您的demoMethod
將MyClass
對象的屬性設置為true或false,您將無法找出其值設置為什么。
因此,您可以執行類似
demoMethod(mc);
if(mc.isMyProperty()==true)
System.out.println("mc is changed");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.