黑马程序员技术交流社区

标题: 匿名对象的重复调用问题 [打印本页]

作者: 落星追恒    时间: 2016-1-15 22:17
标题: 匿名对象的重复调用问题
class Demo {
public void method(Demo d){
System.out.println("调用我了")​;
}
}

new Demo().method(new Demo());
这样可以成功调用这个方法吗? 两个new是同一个对象吗?
作者: shenfuhan    时间: 2016-1-15 22:39
好复杂呢个好复杂
作者: tujiu888    时间: 2016-1-15 22:53
记住 每new一次 就是重新创建一个对象,两个new不是同一个对象
new Demo().method(new Demo()); 括号里面的new Demo() 实际是作为一个引用参数传递给(Demo d) ,这个参数没有被调用,就会再堆内存变成垃圾,没有实际意义!
而打印输出的是的前面的method的方法之前的的匿名对象! 所以这两个匿名对象不是一个!
希望能帮到你!
作者: 擎天柱    时间: 2016-1-16 15:09
可以运行,不过项目里没有这么这样写的。
作者: 落星追恒    时间: 2016-1-16 23:18
tujiu888 发表于 2016-1-15 22:53
记住 每new一次 就是重新创建一个对象,两个new不是同一个对象
new Demo().method(new Demo()); 括号里面的n ...

讲得很好,谢谢,我也记住new了以后就是重新创建对象,就是对匿名对象的调用还有点模糊
作者: szl77777    时间: 2016-1-16 23:37
明显两个对象啊,new了两次




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2