教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

Java培訓:默認構(gòu)造方法

更新時間:2022年07月26日09時49分 來源:傳智教育 瀏覽次數(shù):

  在Java中的每個類都至少有一個構(gòu)造方法,如果在一個類中沒有定義構(gòu)造方法,系統(tǒng)會自動為這個類創(chuàng)建一個默認的構(gòu)造方法,這個默認的構(gòu)造方法沒有參數(shù),方法中沒有任何代碼,即什么也不做。

  下面程序中Student類的兩種寫法,效果是完全一樣的。

  第一種寫法:

class student {
}

  第二種寫法:

class Student {
    public Student () {
    }
}

  對于第一種寫法,類中雖然沒有聲明構(gòu)造方法,但仍然可以用new Student()語句創(chuàng)建Student類的實例對象,在實例化對象時調(diào)用默認的構(gòu)造方法。

  由于系統(tǒng)提供的構(gòu)造方法往往不能滿足需求,因此,通常需要程序員自己在類中定義構(gòu)造方法,一旦類定義了構(gòu)造方法,系統(tǒng)就不再提供默認的構(gòu)造方法了,具體代碼如下:

class Student {
    int age;
    public Student (int n) {
        age = n;
    }
}

  上面的Student類中定義了一個有參構(gòu)造方法,這時系統(tǒng)就不再提供默認的構(gòu)造方法。下面再編寫一個測試程序調(diào)用上面的Student類,如文件3-8所示。

  文件3-8 Example08.java

public class Example08 {
    public static void main (String[] args) {
        Student stu = new Student () ;      // 實例化Student對象
    }
}

  運行文件3-8編譯器會報錯,錯誤信息如圖3-13所示。

  圖3-13 文件3-8編譯錯誤信息

  從圖3-13可以看出,編譯器提示無法將Student類的無參構(gòu)造方法應用到有參構(gòu)造方法,原因是調(diào)用new Student()創(chuàng)建Student類的實例對象時,需要調(diào)用無參構(gòu)造方法,而Student類中定義了一個有參的構(gòu)造方法,系統(tǒng)不再提供無參的構(gòu)造方法。為了避免上面的錯誤,在一個類如果定義了有參構(gòu)造方法,最好再定義一個無參構(gòu)造方法。

  需要注意的是,構(gòu)造方法通常使用public進行修飾。

0 分享到:
和我們在線交談!