// InitArray.java
// initializing an array with a declaration
package test;


public class NullPointerArrayExample
{

/**
* @param args
*/
public static void main(String[] args)
{
MyClass[] arr=new MyClass[10];
for(int i = 0;i < arr.length;i++)
arr[i] = new MyClass();
System.out.println(arr[2].value);

// 分配内存并不代表着初始化
// MyClass是一个类,如果没有定义构造方法,仅凭父类的构造方法可能没有办法完成初始化,
// 只有int类型在分配内存时会自动赋值为0
// 每个数组元素都因该引用一个真实的对象,如果没有显式的把某个对象引用传递给数组元素,其值为NULL,这样就会引发空指针错误

//这是一个新手非常容易犯的错误,以为用new关键字为数组对象分配内存之后就可以直接引用数组元素对象

//想要引用一个数组元素对象,就必须显式得对数组元素用new关键字进行初始化,这样才能调用

}

}
class MyClass
{
public int value=1;
MyClass()
{
value = 1;
}
}

相关文章:

  • 2021-08-26
  • 2021-06-28
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-29
  • 2021-11-29
  • 2021-08-11
猜你喜欢
  • 2021-09-22
  • 2021-08-29
  • 2021-11-26
  • 2022-12-23
  • 2021-12-28
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案