Given myClass
下面和非静态方法run()
,下面的代码行是有效的:
new myClass().move();
然而,这也是有效的:
move();
我理解第一次尝试(new myClass().move()
)创建该类的实例,然后调用它的方法。第二次尝试是否也隐式地做了同样的事情?换句话说,这两次尝试真的相同吗?如果不是,根本区别是什么?哪一个是首选?
好像是 OscarRyz 在帖子中的评论here谈到了这一点,但他没有详细说明。
class myClass
{
void move() {
//...some code
}
void run() {
new myClass().move();
}
}
Thanks.
他们不一样。
如果你打电话move();
,您在当前实例上执行该方法myClass
(这与this.move();
).
如果你打电话new myClass().move();
,您在一个新实例上执行它myClass
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)