java数组分为两种,基本数据类型数组和对象数组.
package test;
public class Test {
private int x = 0;
public Test() {
x = 1;
print();
}
public Test(int a) {
x = a;
print();
}
public void print() {
System.out.print(x);
}
public static void main(String[] args) {
//基本类型的初始化:
int[] q=new int[10];
int[] w={1,2,3,4,5,56};//静态初始化
q[1]=1;//正确
System.out.print(q[0]);//默认为零
//对象数组初始化:
Test[] e ={new Test(1),new Test(2),new Test(3)};//静态初始化
e[1].print();
Test[] t = new Test[10];
t[1].print();// 错误,未初始化
t[1] = new Test();
t[1].print();// 正确,已初始化
for (int i = 0; i < 10; i++)// 动态初始化
{
t[i] = new Test();
}
Test[] p;
p[1]=new Test();//错误,p未初始化;
}
}
对于对象数组的Test[] t=new Test[10],这里的t并未申请10个Test的存储空间,只是说明t是含10个Test对象的数组对象,后面使用t[n]时还得自己new Test(..)才行,总之Test[] t=new Test[10]可以当做一个整体,声明t一个含10个Test对象的数组,但至于Test是否初始化,t无处知晓.
本文出自 “Rainlee的随笔记” 博客,请务必保留此出处http://rainlee.blog.51cto.com/7389753/1317414