黑马程序员技术交流社区

标题: 对象的引用值问题 [打印本页]

作者: kenhe    时间: 2014-12-17 22:22
标题: 对象的引用值问题
当建立引用数据类型时:
比如 数组  int[] arr=new int[3];
       集合类中:ArrayList al=new ArrayList();
System.out.println(arr);
System.out.println(al);
输出数组时打印的是地址值,输出al时打印的却是集合中的内容。
不是都应该是地址值吗?
作者: Jason996    时间: 2014-12-17 22:26
打印出来有问题?楼主现在知道答案了没
作者: tw-IT    时间: 2014-12-17 22:49
数组引用变量是指向新数组的内存地址,数组引用变量存的内存地址
而集合中的arraylist中的引用变量al指向的是一个arraylist对象,因为arraylist类的是系统自带的,而且如果打印它的对象是,系统的对自动调用toString()方法,下面有例子 你看下就知道了

public class Student {
    String name;
    int age;
   
        public Student() {
                super();
                // TODO Auto-generated constructor stub
        }
       
        public Student(String name, int age) {
                super();
                this.name = name;
                this.age = age;
        }

        public String getName() {
                return name;
        }
        public void setName(String name) {
                this.name = name;
        }
        public int getAge() {
                return age;
        }
        public void setAge(int age) {
                this.age = age;
        }
        @Override           //重写toString()方法
        public String toString() {
                System.out.println("调用toString方法");
                return "Student [age=" + age + ", name=" + name + "]";
        }
               
        public static void main(String[] args) {
                System.out.println(new Student("lisi",47));
               
        }
}


输出结果是:
调用toString方法
Student [age=47, name=lisi]





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2