Java中数组的初始化的含义
2005-11-25 16:37
399 查看
Java[/b]中数组的初始化的含义[/b]
[/b]引用数组的定义为(如果不是基本的数据类型):
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类的构造函数,没有把它当成数组对象的一种定义来看待。
[/b]引用数组的定义为(如果不是基本的数据类型):
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类的构造函数,没有把它当成数组对象的一种定义来看待。
相关文章推荐
- Java中数组的初始化的含义
- javascript&java数据类型以及数组的初始化比较
- JAVA和C++数组初始化
- java中数组的初始化(Arrays.fill())
- 黑马程序员-Java数组声明、创建、初始化、及排序
- java-String数组的初始化以及二维数组的访问
- JAVA 字符数组的键盘输入赋值与初始化赋值的运算与输出
- JAVA 基本类型数组的初始化(原理篇)
- Java数组初始化
- 数组的初始化方式--Java基础030
- Java数组声明、创建、初始化
- Java学习笔记-数组的三种初始化方式
- java数组初始化
- java 数组初始化
- 使用JAVA反射初始化数组(转)
- java 数组的声明和初始化
- java笔记之数组的概念、声明、初始化、访问方式、复制和动态扩展算法以及递归
- java基础入门之数组循环初始化
- 【Java】Java数组的声明和初始化
- java中 不直接初始化数组 的使用(ArrayList)