日期:2014-05-20  浏览次数:20556 次

引用问题?大家来看看
import   java.util.*;

public   class   Test   {
public   ArrayList   getList()   {
ArrayList   list   =   new   ArrayList();
return   list;
}

public   static   void   main(String[]   args)   {
Test   test   =   new   Test();
test.getList();//getList()方法返回的是对象还是引用?

}

}
//如果是引用

//1.方法返回的引用是在什么地方定义的?
//2.方法返回的引用是在什么地方传参(对象的地址)的?


------解决方案--------------------
返回的是对象
public static void main(String[] args) {
Test test = new Test();
test.getList();//getList()方法返回的是对象还是引用?

}
test.getList();//得到对象
但是你没有把对象传递给任何的引用
你可以这样定义
public static void main(String[] args) {
Test test = new Test();
ArrayList anotherList;
anotherList=test.getList();//getList()方法返回的是对象还是引用?

}
anotherList就是引用的test.getList()返回的对象;


------解决方案--------------------
我认为引用.
当调用getList(),应看一看,他方法的内容.ArrayList list = new ArrayList();
这是又有引用,又有对象.但list是引用是毫无疑问的.那return list应该返回的
是list的内容吧.也就是指向对象的地址.所以我认为方法返回的是对象的引用.
试想想如果该一下return语句.return new ArrayList().那又是返回什么那!
我认为还是引用(对象的地址).返回对象是不可能的!!!
关键在于ArrayList list = new ArrayList();的完成了那些功能:
1 在栈声明一个ArrayList的引用list
2 分配空间,建立对象
3 返回对象的引用地址赋给list.

------解决方案--------------------
同意二楼的意见
------解决方案--------------------
Java中除了基本数据类型(int, char等)以外全部是引用!!!