A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© Aaron9527 中级黑马   /  2016-5-31 01:31  /  569 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


import java.util.ArrayList;

class Student{
       
}
public class Demo {
        public static void main(String[] args) {
                Student stu = new Student();
                //存入到集合
                ArrayList list = new ArrayList();
                list.add(stu);
                Student stuObj = (Student)list.get(0);
                //释放stu
                stu = null;
               
                list.add(10);//list.add(Integer)
                list.add(3.14);//list.add(Double)               
        }
}
将一个类存入到集合中有什么意义?它存储的是类的对象,如果我想调用类中的成员方法是不是还需要从集合中取出对象,让再用类名.调用来调用这个函数吗?

1 个回复

倒序浏览
我说一下我的理解,类是抽象的,而对象是具体的,单说类的意义不大。而将类的对象放到集合中,准确的说是将对象的地址值放到了集合中。
就那你写的这个例子来说吧,你需要把学生对象放到List集合中,首先new一个学生对象出来,这样就会在堆内存开辟了一块空间,假如说它有一个地址值0x001,List的底层是数组结构,List的add()方法将学生对象放到集合中,实际上就相当于list集合中的一个索引记录了一个地址值0x001,完了这个地址值指向了刚才的学生对象。但是List的add(Object obj)方法默认的是Object类型的,你传一个学生对象进去就相当于做了这么一件事Object obj=new Student(); 这里会把学生对象自动提升为Object类型,这就是父类指向子类的引用(多态嘛)。如果你想访问学生对象中的方法,就需要遍历集合,返回的是Object,这里需要把Object转为Student就行了(向下转型),完了再通过学生对象.方法名来调用方法了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马