在本文中,我們將討論構造函數,如何創建我們自己的構造函數,以及Java中的默認構造函數。
什么是構造函數?
作為基于類的面向對象編程術語,構造函數是用于初始化新創建的對象(類)的唯一方法。創建構造函數時必須遵循一些規則。這些規則包括:
構造函數的名稱必須與類名相同。
構造函數必須沒有返回類型。
在繼續之前,讓我們看看類在Java中的樣子:
上面的代碼顯示了一個名為 Student 的類,該類具有三個屬性 – 、 和 。我們將假設該類應該是注冊學生的樣本。回想一下,這三個屬性沒有任何值,因此沒有一個信息是硬編碼的。firstNamelastNameage
現在,我們將使用構造函數來創建對象的新實例。那是:Student
我們創建了一個構造函數,用于初始化對象中定義的屬性。上面的代碼是無參數構造函數的示例。現在讓我們看一個不同的例子:Student
現在我們已經創建了一個參數化構造函數。參數化構造函數是使用參數/參數創建的構造函數。讓我們來分解一下。
我們創建了一個新的構造函數,它接受三個參數 - 兩個字符串和一個整數。
然后,我們將這些參數鏈接到我們在創建類時定義的屬性。現在,我們已經使用構造函數初始化了 Student 對象。
最后,我們創建了 Student 對象的新實例,并傳入了我們的參數。我們能夠傳入這些參數,因為我們已經在構造函數中定義了它們。
我創建了一個包含三個參數的構造函數,但您也可以創建單獨的構造函數來初始化每個屬性。
現在您已經了解了 Java 中的構造函數是什么以及如何使用它,現在讓我們來看看默認構造函數。
什么是默認構造函數?
默認構造函數是由編譯器創建的構造函數,如果我們不為類定義任何構造函數。下面是一個示例:
您能發現這與前面的兩個示例之間的區別嗎?請注意,在創建之前,我們沒有定義任何構造函數來初始化在類中創建的屬性。myStudent
這不會以我們的方式拋出錯誤。相反,編譯器將創建一個空構造函數,但您不會在代碼中的任何位置看到此構造函數 - 這發生在引擎蓋下。
當編譯器開始執行其工作時,上面的代碼將如下所示:
很多人混淆了無參數構造函數的默認構造函數,但它們在Java中并不相同。程序員創建的任何構造函數在 Java 中都不被視為默認構造函數。
在本文中,我們了解了什么是構造函數,以及如何創建和使用它們來初始化我們的對象。
我們還討論了默認構造函數以及它們與無參數構造函數的不同之處。