"在分配对象后传递引用之间的差异"和#34;使用新关键字传递对象"到java中的方法?

时间:2014-10-27 16:42:26

标签: java oop object reference

它有什么不同?

让我们认为我们在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

2 个答案:

答案 0 :(得分:3)

方法在该引用上的行为没有区别。第一个代码可以在语义上转换为第二个代码。最终,使用new MyClass()创建的对象需要存储在某处,以便可以重新加载并传递给方法。

但是,使用第二个代码可以重复使用参考。

答案 1 :(得分:1)

demoMethod没有任何区别。实际上,在这两种情况下,您只传递参考。

但是,如果要在demoMethod在调用方法中执行某些操作后使用该信息,则不能在第一种类型中执行此操作。

假设您的demoMethodMyClass对象的属性设置为true或false,您无法找到它的值设置为什么。

所以,你可以做类似

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