JAVA對象數組的初始化

問題如下:

class FileStruct{

       int intPara;

       FileStruct(){

            intPara=0;

       }

       public void setintPara(int i){

            intPara=i;

       }

       public int getintPara(){

            return intPara;

       }

}



class Read{

        public void main(String[] args){

               FileStruct[] fs=new FileStruct[10];

              for(int i=0;i<10;i++)

                     System.out.println(fs[i].getintPara);

}

此時程序會拋出異常:java.lang.NullPointerException

在以上程序中已存在兩個錯誤:

  • 對數組的初始化工作沒有結束

  • 在類FileStruct中沒有將構造器函數公有化

錯誤原因:
1. 在Java中對非基本數據初始化時,必須使用new。在使用new創建數組後,此時數組還是一個引用數組。只有再創建新的對象,並把對象賦值給數組引用,到此初始化結束。

  1. 在以上程序中如果再使用new創建對象對數組引用賦值,仍會拋出異常:The constructor FileStruct() is not visible

基於此,以上程序應改爲:

class FileStruct{

       int intPara;

       public FileStruct(){

            intPara=0;

       }

       public void setintPara(int i){

            intPara=i;

       }

       public int getintPara(){

            return intPara;

       }

}



class Read{

        public void main(String[] args){

               FileStruct[] fs=new FileStruct[10];

             for(int j=0;j<10;j++)

                     fs[j]=new FileStruct();

              for(int i=0;i<10;i++)

                     System.out.println(fs[i].getintPara);

}

轉載自error

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章