首頁 >Java >Java基礎 >java中構造方法怎麼寫

java中構造方法怎麼寫

青灯夜游
青灯夜游原創
2021-07-23 17:42:0319461瀏覽

java中建構方法的寫法為“class class_name {public class_name(){} public ciass_name([paramList]){}  …// 類別主體}”,方法名稱必須與類別名稱相同,各自的方法參數要不同。

java中構造方法怎麼寫

本教學操作環境:windows7系統、java8版、DELL G3電腦。

建構方法是類別的一種特殊方法,用來初始化類別的一個新的對象,在建立物件(new 運算子)之後自動呼叫。 Java 中的每個類別都有一個預設的建構方法,並且可以有一個以上的建構方法。

Java 建構方法有以下特點:

  • 方法名稱必須與類別名稱相同

  • 可以有0 個、1個或多個參數

  • 沒有任何回傳值,包含void

  • 預設回傳類型就是物件類型本身

  • #只能與new 運算子結合使用

值得注意的是,如果為建構方法定義了傳回值型別或使用void 宣告建構方法沒有傳回值,編譯時不會出錯,但Java 會把這個所謂的構造方法當成普通方法來處理。

這時候大家可能會產生疑問,建構方法不是沒有回傳值嗎?為什麼不能用 void 聲明呢?

簡單的說,這是 Java 的文法規定。實際上,類別的建構方法是有傳回值的,當使用new 關鍵字來呼叫建構方法時,建構方法傳回該類別的實例,可以把這個類別的實例當成建構器的回傳值,因此建構器的傳回值類型總是當前類,無須定義返回值類型。但必須注意不要在建構方法裡使用 return 來傳回目前類別的對象,因為構造方法的回傳值是隱式的。

注意:建構方法不能被 static、final、synchronized、abstract 和 native(類似 abstract)修飾。構造方法用來初始化一個新對象,所以用 static 修飾沒有意義。構造方法不能被子類別繼承,所以用 final 和 abstract 修飾沒有意義。多個線程不會同時創建內存地址相同的同一個對象,所以用 synchronized 修飾沒有必要。如果不了解 static、final 以外的其他關鍵字,教程後面會詳細講解。

建構方法的語法格式如下:

class class_name {
    public class_name(){}    // 默认无参构造方法
    public ciass_name([paramList]){}    // 定义构造方法
    …
    // 类主体
}

在一個類別中,與類別名稱相同的方法就是建構方法。每個類別可以具有多個建構方法,但要求它們各自包含不同的方法參數。

範例:

建構方法主要有無參考構造方法和有參構造方法兩種,範例如下:

public class MyClass {
    private int m;    // 定义私有变量
    MyClass() {
        // 定义无参的构造方法
        m = 0;
    }
    MyClass(int m) {
        // 定义有参的构造方法
        this.m = m;
    }
}

此範例定義了兩個構造方法,分別是無參構造方法和有參構造方法。在一個類別中定義多個具有不同參數的同名方法,這就是方法的重載。這兩個建構方法的名稱都與類別名稱相同,都是 MyClass。在實例化該類別時可以呼叫不同的建構方法進行初始化。

注意:類別的建構方法不是要求必須定義的。如果在類別中沒有定義任何一個建構方法,則 Java 會自動為該類別產生一個預設的建構方法。預設的建構方法不包含任何參數,且方法體為空。如果類別中明確地定義了一個或多個建構方法,則 Java 不再提供預設建構方法。

提示:無參數的建構方法也稱為 Nullary 建構方法。只有編譯程式自動加入的建構方法,才稱為預設建構子。如果自行寫無參數、沒有內容的建構函數,就不稱為預設建構函數了(只是 Nullary 建構函數)。雖然只是名詞定義,不過認證考試時要區別一下兩者的差異。

相關影片教學推薦:Java影片教學

#

以上是java中構造方法怎麼寫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn