引用问题?大家来看看
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等)以外全部是引用!!!