"passing reference after assigning an object"和"passing object using new keyword" 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");

相关内容

最新更新