它有什么不同?
让我们认为我们在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
答案 0 :(得分:3)
方法在该引用上的行为没有区别。第一个代码可以在语义上转换为第二个代码。最终,使用new MyClass()
创建的对象需要存储在某处,以便可以重新加载并传递给方法。
但是,使用第二个代码可以重复使用参考。
答案 1 :(得分:1)
demoMethod
没有任何区别。实际上,在这两种情况下,您只传递参考。
但是,如果要在demoMethod
在调用方法中执行某些操作后使用该信息,则不能在第一种类型中执行此操作。
假设您的demoMethod
将MyClass
对象的属性设置为true或false,您无法找到它的值设置为什么。
所以,你可以做类似
的事情demoMethod(mc);
if(mc.isMyProperty()==true)
System.out.println("mc is changed");