martinlovnemo
2016-08-09 07:44
采纳率: 0%
浏览 1.1k

java萌新求问,有关引用变量的问题,老司机+++++

图片说明
图片说明
tree.add(new Zero(10));
System.out.println(tree.add(new Zero(10)));

这两句话对Zero对象的引用,没有显示的分配,是编译时候系统自动分配的么?
如果是给Zero对象分配相同的引用(如同注释的部分),是有两个引用变量?实例化的对象是两个么?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 情人节也放假 2016-08-09 08:21

    new几次就是几个实例
    至于是否自动分配,我不清楚,看楼下有解答吗

    打赏 评论
  • threenewbee 2016-08-09 12:46

    当然是运行时才分配的。new Zero(10)调用了一个带一个参数的构造函数。
    注意,这个对象引用是匿名的

    Zero z = new Zero(10);
    System.out.println(tree.add(z));
    也可以简写成
    System.out.println(tree.add(new Zero(10)));
    此时这个变量没有任何实参的名字,其实是一样的。

    打赏 评论
  • static_mkk 2016-08-09 14:07

    http://jingyan.baidu.com/article/a501d80cf734c3ec630f5e25.html
    这里更详细些…
    不过简单来说,Zore z=new Zore(10);中,后面是创建一个对象,在堆中,而前面的z是指向改对象的引用,就是对象引用…
    详细看上面那个链接

    打赏 评论
  • luliang0 2016-08-21 14:29

    可以用匿名内部类的方式来写

    打赏 评论

相关推荐 更多相似问题