欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java自定義類數(shù)組報null的相關(guān)問題及解決

 更新時間:2023年09月29日 08:50:48   作者:Dwoura犀利  
這篇文章主要介紹了Java自定義類數(shù)組報null的相關(guān)問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Java自定義類數(shù)組報null問題

不要沿用c++的想法。

java的數(shù)組分基本數(shù)據(jù)類型和引用類型

  • 基本數(shù)據(jù)類型:如int[] s=new int[10]; 這里面創(chuàng)建了長度為10的整型數(shù)組,并且自動為每個元素創(chuàng)建了對象,即能找到相關(guān)地址
  • 引用類型:如寫了個class student(){}, 在student[] s=new student[10]中只是new了數(shù)組空間,我們還要對s[0]-s[9]每一個創(chuàng)建對象,否則數(shù)組為null。

解決方法

for(int i=0;i<10;i++)
{
? ? s[i]=new student();
}

可以理解為先創(chuàng)建了空數(shù)組,然后為每一個元素添加了屬于它的屬性。

實例:

設(shè)某一個班共有N(N=20)名學生,期末考試5門課程,請編一程序評定學生的獎學金,要求打印輸出一、二等獎學金學生的學號、姓名和各門課成績。       (獎學金評定標準是:總成績超過全班總平成績20%發(fā)給一個獎學金,超過全班總平成績10%發(fā)給二個獎學金。)

Java自定義類二維數(shù)組出現(xiàn)NullPointerException錯誤

自定義的類

package com.hbq.bugs;
// MyClass 類
public class MyClass {
    public int s1;
    public int getS1() {
        return s1;
    }
    public void setS1(int s1) {
        this.s1 = s1;
    }
}

主函數(shù)

package com.hbq.bugs;
public class App {
    public static void main(String[] args) {
        MyClass [][] c=new MyClass[10][10];
        c[0][0].setS1(1);
    }
}

運行會出現(xiàn)

進入debug模式發(fā)現(xiàn)

c[0]的所有元素都是null。

這是由于引用對象不初始化默認都為null的原因。

所以會有一個長度為10的一維數(shù)組,每個一維數(shù)組的元素又是長度為10的一維數(shù)組,這個數(shù)組里的元素默認都為null。

所以要對每一行每一列進行實例化賦值開拓新空間。

package com.hbq.bugs;
public class App {
    public static void main(String[] args) {
        MyClass[][] c = new MyClass[10][10];
//        c[0][0].setS1(1);
        for (int i = 0; i < 10; i++) {
            for (int j = 0; j < 10; j++) {
                c[i][j] = new MyClass();
            }
        }
        c[0][0].setS1(1);
        System.out.println(c[0][0].getS1());
    }
}

運行成功!

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論