Java中数组的初始化的含义

来源:互联网 发布:java实训内容怎么写 编辑:程序博客网 时间:2024/04/28 21:34

Java中数组的初始化的含义

http://blog.csdn.net/metasearch/article/details/536843

引用数组的定义为(如果不是基本的数据类型):

   Obj[] a=new obj[size]

下面首先来看这个例子

class showstr{

    public void show(){

        System.out.println("hello!");

    }

}

public class Arraytest {

 

    public static void main(String[] args) {

        showstr[] a=new showstr[10];

        for(int i=0;i<a.length;i++)

        {

            a[i].show();

        }

    }

}

这段代码会运行正常吗?

答案是不会,因为辉抛出异常,因为在数组的定义得时候,showstr[] a=new showstr[10]这句话调用的是数组对象的构造函数,而不是showstr的构造函数,在程序中,首先要加上对每个数组对象的初始化才能使用,例子如下

class showstr{

    public void show(){

        System.out.println("hello!");

    }

}

public class Arraytest {

 

    public static void main(String[] args) {

        showstr[] a=new showstr[10];//这句话只是调用了数组的构造函数,返回队中的一个地址,而不是showstr的构造函数

        for(int i=0;i<a.length;i++)

        {

            a[i]=new showstr();//如果要调用对象中的函数,需要先对其进行初始化

            a[i].show();

        }

    }

}

Java里面真的是一切皆对象啊!数组都是对象。例如String s1[] = new String[5];也是返回堆中一个地址,也要调用构造函数,只不过不是String类的构造函数而是这个数组对象类的构造函数。不能习惯的认为此处的构造函数是String类的构造函数,没有把它当成数组对象的一种定义来看待。

原创粉丝点击