JAVA對象數組的初始化方法

來源:互聯網
上載者:User

問題如下:

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

在以上程式中已存在兩個錯誤:1.對數組的初始化工作沒有結束   2.在類FileStruct中沒有將構造器函數公有化

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

                  2. 在以上程式中如果再使用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);}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.