JAVA“类”数组的创建与调用和C++相比是不同的。
先看这样一个类数组的创建
注:bookFeature 是一个类
错误1:
1 2 3 4 5 6 7 8 |
class bookList { private int bookNum=0; final int MAXSIZE=1001; public bookList(){ bookNum=0; bookFeature[] List=new bookFeature[MAXSIZE]; } } |
这里在构造方法bookList()里定义了bookFeature[] List=new bookFeature[MAXSIZE];
这样是不行的,JAVA要求对每个变量都要初始化,必须在构造方法里加上这样一行代码:
1 2 |
for(int i=0;i<MAXSIZE;i++){ List[i]=new bookFeature(); |
这样是否就行了呢?接下来看错误2
错误2:
1 2 3 4 5 6 7 8 9 10 11 |
class bookList { private int bookNum=0; final int MAXSIZE=1001; bookFeature[] List; public bookList(){ bookNum=0; bookFeature[] List=new bookFeature[MAXSIZE]; for(int i=0;i<MAXSIZE;i++){ List[i]=new bookFeature(); } } |
这里先定义了 bookFeature[] List;再在构造方法,这样也是不行的,这里数组变量必须放在对象中。
两种错误都会报错 java.lang.NullPointerException
记住数组在JAVA中是对象!!!
下面给出正确的类数组的声明
1 2 3 4 5 6 7 8 9 10 11 |
import java.util.*; class bookList { private int bookNum=0; final int MAXSIZE=1001; bookFeature[] List=new bookFeature[MAXSIZE]; public bookList(){ bookNum=0; for(int i=0;i<MAXSIZE;i++){ List[i]=new bookFeature(); } } |