JAVA“類”陣列的建立與呼叫

Reacubeth發表於2017-07-16

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();
        }
    }

相關文章