JAVA“类”数组的创建与调用和C++相比是不同的。
先看这样一个类数组的创建
注:bookFeature 是一个类
错误1:
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();
}
}