<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                這一節我們簡單的說幾個在使用構造函數時需要注意的細節。 通過我們前幾節的學習,我們對構造函數有了一個比較清楚的認識,當我們在創建對象時,我們會調用構造函數。那么我們在定義和調用構造函數時,需要注意哪些細節呢? ** ** **第一個需要注意的細節:構造函數與set方法** 看兩個函數代碼: ~~~ class Person { private String name; private int age; //構造函數,初始化name Person(String n) { name = n; System.out.println(name+"age"+age); } //一般函數,設置name public void setName(String n) { name = n; } } ~~~ 我們看到上面有兩個函數,第一個是構造函數,第二個是一般方法,它們兩個都是為設置name的內容,那么我們能不能用構造函數代替set方法呢,很顯然,這是不行了,因為我們之前已經學習了構造函數和一般函數的區別,而set方法就是一個一般函數。構造函數在這里只是對name進行了一次初始化,之后就不再作用了,而set方法當我們需要更改名字的任何時候都可以調用。 **第二個需要注意的細節:構造函數可以調用一般函數,但是一般函數不可以直接調用構造函數。** 我們來看例子: ~~~ class Person { private String name; private int age; //構造函數,初始化name Person(String n) { setName(n); System.out.println(name+":"+age); } //一般函數,設置name public void setName(String n) { name = n; } } ~~~ 編譯通過,我們來測試一下 ~~~ class PersonTest { public static void main(String[] args) { Person p = new Person("小強"); } } ~~~ 結果: ![](https://box.kancloud.cn/2016-05-18_573c41b01664b.jpg) 很顯然構造函數中調用一般函數是可以的。 當我們在set方法中調用構造函數: ~~~ class Person { private String name; private int age; //構造函數,初始化name Person(String n) { name = n; System.out.println(name+":"+age); } //一般函數,設置name public void setName(String n) { Person(n); name = n; } } ~~~ 結果: ![](https://box.kancloud.cn/2016-05-18_573c41b02ac7a.jpg) 我們看到編譯直接通不過,所以說一般函數中是不能直接調用構造函數的。 **第三個需要注意的細節:與類名同名的一般方法** 我們看這樣一個函數: ~~~ class Person { private String name; private int age; void Person(String n) { name = n; System.out.println(name+":"+age); } } ~~~ 測試: ~~~ class PersonTest { public static void main(String[] args) { Person p = new Person("小強"); } } ~~~ 結果: ![](https://box.kancloud.cn/2016-05-18_573c41b040591.jpg) 我們看到提示說無法將構造函數應用到給定類型,實際沒有參數,但我們的代碼中有參數“小強”,也就是說我們創建對象用的函數不是構造函數,而是一個一般函數,程序沒有在Person類中找到相應的構造函數,因為我們的代碼中沒有定義構造函數,那么就只有默認構造函數,而默認構造函數是沒有任何參數的。所以我們在以后的編程過程中一定要注意這種現象。 **第四個需要注意的細節:構造函數中有return語句。** 我們看代碼說明問題 ~~~ class Person { private String name; private int age; Person(String n,int a) { if(a<0) { System.out.println("初始化不合法!"); return; } name = n; age = a System.out.println(name+":"+age); return ;//我們在函數那里學習了,沒有返回值的函數中的return語句是可以省略的 } } ~~~ 我們來測試一下 ~~~ class PersonTest { public static void main(String[] args) { Person p = new Person("小強",-1); } } ~~~ 結果:![](https://box.kancloud.cn/2016-05-18_573c41b05389e.jpg) 我們發現了程序編譯通過并且運行正常,return語句跳出構造函數,那么也就是說構造函數中有return語句。 這一節我們學習了四個構造函數中經常需要注意的細節,在以后的編程過程中我們多多注意。
                  <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>

                              哎呀哎呀视频在线观看