<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之旅 廣告
                這一節我們再看一個特殊的代碼塊,那就是構造代碼塊。 這里我們簡單的通過例子來說明一下: ~~~ class Person { private String name; { System.out.println("Person類的第一個代碼塊被執行"); } Person() { System.out.println("無參數構造函數被執行"); this.name = "小寶寶"; } Person(String name) { System.out.println("有name參數構造函數被執行"); this.name = name; } public void speak() { System.out.println("名字:"+name); } } class ConBlockTest { public static void main(String[] args) { Person p1 = new Person(); p1.speak(); Person p2 = new Person("小科比"); p2.speak(); } } ~~~ 我們在這個例子中看到了Person類中有一個代碼塊,它沒有被static關鍵字修飾,這就是我們這一節所說的構造代碼塊,為什么這么說呢,我們看運行結果: ![](https://box.kancloud.cn/2016-05-18_573c422a9c286.jpg) 我們很顯然就看到了在我們創建兩個對象時,該代碼塊都被執行了,而構造函數只是當創建對應對象時被調用。 所以構造代碼塊的作用就是:**給所有對象進行相同部分的初始化。** 而我們的構造方法是對對應的對象進行有針對性的獨特的初始化。 那么構造代碼塊的構造函數哪個先執行呢?我們看代碼: ~~~ class Person { private String name; {//第一個構造代碼塊 System.out.println("Person類的第1個代碼塊被執行"); } Person() { System.out.println("無參數構造函數被執行"); this.name = "小寶寶"; } Person(String name) { System.out.println("有name參數構造函數被執行"); this.name = name; } public void speak() { System.out.println("名字:"+name); } {//第二個構造代碼塊 System.out.println("Person類的第2個代碼塊被執行"); } } ~~~ 我們看結果: ![](https://box.kancloud.cn/2016-05-18_573c422aae4e6.jpg) 我們看到兩個不同位置的構造代碼塊都在構造函數被執行之前就已經執行了,所以說**構造代碼塊優先于構造函數執行。** ** ** 所以,當我們需要把所有對象都有相同的初始化時,我們可以使用構造代碼塊來實現,比如上面的例子中,人一出生都會哭,那么我們就可以用構造代碼塊來初始哭這個功能: ~~~ class Person { private String name; { cry(); } Person() { this.name = "小寶寶"; } Person(String name) { this.name = name; } public void cry() { System.out.println("哇哇"); } public void speak() { System.out.println("名字:"+name); } } ~~~ 這樣我們就把所有對象哭的功能封裝到了一個構造代碼塊中,在創新對象是會優先執行,很好的實現了我們想要的功能。 ![](https://box.kancloud.cn/2016-05-18_573c422abf8e0.jpg)
                  <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>

                              哎呀哎呀视频在线观看