tree.add(new Zero(10));
System.out.println(tree.add(new Zero(10)));
这两句话对Zero对象的引用,没有显示的分配,是编译时候系统自动分配的么?
如果是给Zero对象分配相同的引用(如同注释的部分),是有两个引用变量?实例化的对象是两个么?
new几次就是几个实例
至于是否自动分配,我不清楚,看楼下有解答吗
当然是运行时才分配的。new Zero(10)调用了一个带一个参数的构造函数。
注意,这个对象引用是匿名的
Zero z = new Zero(10);
System.out.println(tree.add(z));
也可以简写成
System.out.println(tree.add(new Zero(10)));
此时这个变量没有任何实参的名字,其实是一样的。
http://jingyan.baidu.com/article/a501d80cf734c3ec630f5e25.html
这里更详细些…
不过简单来说,Zore z=new Zore(10);中,后面是创建一个对象,在堆中,而前面的z是指向改对象的引用,就是对象引用…
详细看上面那个链接
可以用匿名内部类的方式来写