<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Java 構造器 > 原文: [https://howtodoinjava.com/oops/java-constructors/](https://howtodoinjava.com/oops/java-constructors/) **Java 構造器**是特殊的方法(無返回類型),可讓您在對象狀態可以由應用程序內的其他類使用之前完全初始化。 使用`new`關鍵字調用 Java 中的構造器。 讓我們更深入地了解構造器。 ```java Table of Contents What is Java Constructor Types of Constructors i) Default Constructor (no-arg constructor) ii) Parameterized Constructor Constructor Rules Constructor Chaining Private Constructor ``` ## Java 中的構造器是什么 構造器是一種特殊的方法,類似于(沒有確切的方法)構造,它可以幫助程序員編寫[對象初始化](https://docs.oracle.com/javase/tutorial/java/javaOO/objectcreation.html)代碼,然后該對象可用于應用程序中的其他對象。 每當應用程序需要任何類的新實例時,JVM 就會在堆內部分配一個內存區域。 然后,JVM 執行調用的構造器(類可以具有多個構造器)并初始化對象狀態。 在構造器內部,您可以訪問所有對象屬性并將其分配給它們的默認值或任何所需的值。 > 閱讀更多: [Java 內存模型](//howtodoinjava.com/java/garbage-collection/jvm-memory-model-structure-and-components/) ## 構造器的類型 1. **默認構造器(無參構造器)** 如果程序員在類定義中不提供任何構造器 – JVM 在運行時為該類提供默認構造器。 程序員還可以覆蓋類中的默認構造器。 讓我們看一下語法。 ```java public class Employee { public Employee() { } } ``` 在默認構造器中,構造器的名稱必須與類名稱匹配,并且不應具有任何參數。 2. **帶有構造函數重載的參數化構造器** 如上所述,一個類中可以有多個構造器。 這可以通過重載構造器來實現。 在**構造器重載**中,您可以根據要求傳遞參數列表,即,可以使用幾種方法初始化類。 ```java public class Employee { private String firstName; private String lastName; public Employee() { //constructor 1 } public Employee(String firstName) { //constructor 2 } public Employee(String firstName, String lastName) { //constructor 3 } } ``` 在上面的類中,我們定義了 3 個構造器來處理 3 種情況 – 應用程序可能需要如何創建員工對象,即不使用名稱,僅使用名字以及同時使用名字和姓氏。 ```java Employee employee1 = new Employee(); Employee employee2 = new Employee("Lokesh"); Employee employee3 = new Employee("Lokesh", "Gupta"); ``` ## 構造規則 在 Java 中創建構造器的強制性規則很少。 1. 構造器名稱必須與類的名稱相同。 2. 構造器定義中不能有任何返回類型。 3. 構造器中不能有任何`return`語句。 4. 構造器可以由不同的參數重載。 5. 如果要使用`super()`,即超類構造器,則它必須是構造器中的第一條語句。 ## 構造器鏈接 在 Java 中,可以在構造器中調用其他構造器。 就像方法調用一樣,但是沒有任何引用變量(顯然,實例已完全初始化)。 現在,我們可以調用相同類或父類的構造器。 兩者使用不同的語法。 #### 調用同一個類的構造器 要從同一類調用其他構造器,請使用`this`關鍵字。 例如: ```java public Employee() { } public Employee(String firstName) { this(); //calling default constructor } public Employee(String firstName, String lastName) { this(firstName); //calling constructor with single argument of String type } ``` #### 調用超類構造器 要從父類或父類調用構造器,請使用`super`關鍵字。 `super`關鍵字的用法類似于`this`關鍵字 – 唯一的區別是`super`引用超類,`this`引用當前實例。 ```java public Employee() { //refer to Object class constructor //as it is parent class for every class super(); } ``` ## 私有構造器 有時您想保護構造器以免被其他類調用。 總之,您希望沒有人能夠創建該類的新實例。 為什么有人要那個? 好吧,這對于[單例模式](//howtodoinjava.com/design-patterns/creational/singleton-design-pattern-in-java/)是必要的。 在單例中,應用程序希望只有任何一個類的一個實例。 常見的單例類定義如下所示: ```java public class DemoSingleton implements Serializable { private static final long serialVersionUID = 1L; private DemoSingleton() { // private constructor } private static class DemoSingletonHolder { public static final DemoSingleton INSTANCE = new DemoSingleton(); } public static DemoSingleton getInstance() { return DemoSingletonHolder.INSTANCE; } protected Object readResolve() { return getInstance(); } } ``` 這就是 Java 中的**構造器**。 將我的問題放在評論部分。 學習愉快!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看