Java正確創建對象數組


先從一段簡單的錯誤代碼切入,然后在后面提出正確的創建方法。

先考慮這段代碼:

public class Student {

    private int age;
    private String name;

    public void Student() {
        this.age = 21;
        this.name = "someone";
    }

    public void setAge (int age) {
        this.age = age;
    }

    public int getAge() {
        return this.age;
    }
}
public class Test {

    public static void main(String[] args) {

        Student[] students = new Student [3]; 

        students[0].setAge(18);  

        System.out.println(students[0].getAge());
    }
}

運行結果如下,是一個空指針異常:

Exception in thread “main” java.lang.NullPointerException 
at Test.main(Test.java:7)

分析原因

Student[] students = new Student [3]; 這一句創建了三個Student的聲明,但並沒有調用Student的構造方法,等價於,

Student s1;
Student s2;
Student s3;

因此,s1, s2, s3的對象實際上並沒有被創建,在內存上也沒有一塊對應的空間。那么在對象還沒有被創建之前,我們自然是不可以調用它的任何方法的。

正確的對象數組創建方法

public class Test {

    public static void main(String[] args) {

        int i;

        Student[] students = new Student [3]; 

        //實例化每一個元素
        for (i = 0; i < students.length; i++) {
            students[i] = new Student();
        }

        students[0].setAge(18);  
        students[1].setAge(30); 
        students[2].setAge(25); 

        System.out.println(students[0].getAge());
        System.out.println(students[1].getAge());
        System.out.println(students[2].getAge());
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM