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

© Aaron9527 中级黑马   /  2016-5-30 23:14  /  425 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Student{
        private String name;

        public Student(String name) {
                super();
                this.name = name;
        }

        public Student() {
                super();
        }

        public String getName() {
                return name;
        }

        public void setName(String name) {
                this.name = name;
        }
       
}

public class HomeWork {
        public static void main(String[] args) {
                ArrayList<Student> list = new ArrayList<>();
                list.add(new Student("姜子牙"));
                list.add(new Student("红豆芽"));
                list.add(new Student("绿豆芽"));
               
                ListIterator<Student> it = list.listIterator();
                while(it.hasNext()){
                        Student stu = it.next();
                        System.out.println(stu.getName());
                }
        }
}
这样写是正确的,但是当我把Student stu = it.next();去掉,下面改成System.out.println(it.name);确是地址值,是怎么回事

3 个回复

倒序浏览
不知道什么原因,但是谁会这么用呢
回复 使用道具 举报
应该是要重写toString方法吧
回复 使用道具 举报
it  是迭代器  name是Student的成员变量还是私有的 会报错的啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马