<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 Car { int num;//這是輪胎數屬性 String color;//這是顏色屬性 String brand;//這是品牌性 void start()//啟動行為 { System.out.println("小汽車已啟動"); } void run()//這就是運行行為 { System.out.println(num+"..."+color+"..."+brand); } } ~~~ 對于我們的Car類,如果我們要創建多個相同的小汽車我們應該怎么做呢? 對于我們初學者,我們肯定會用這樣的操作: ~~~ class CarDemo { public static void main(String[] args) { //定義第一輛車 Car myCar1 = new Car(); myCar1.num = 4; myCar1.color = "red"; myCar1.brand = "BWM"; //定義第二輛車 Car myCar2 = new Car(); myCar1.num = 4; myCar1.color = "red"; myCar1.brand = "BWM"; //定義第三輛甚至更多時,只能這樣不斷的寫代碼 } } ~~~ 我們可以說說,上面的代碼確實很爛了,我們做了很多相同的操作,如果我們要定義很多相同的車時,代碼的復用性確實太差了. 那么我們該怎么做呢,很顯然,我們必須要提高代碼的復用性,也就是說我們可以把相同功能的代碼封裝起來以重復使用,那么就可這樣做: ~~~ class CarDemo { public static void main(String[] args) { //定義第一輛車 Car myCar1 = new Car(); assemble(myCar1); System.out.println("myCar1是一輛"+myCar1.color+"顏色的"+myCar1.brand+"品牌的小汽車,它有"+myCar1.num+"個輪子"); //定義第二輛車 Car myCar2 = new Car(); assemble(myCar2); System.out.println("myCar2是一輛"+myCar2.color+"顏色的"+myCar2.brand+"品牌的小汽車,它有"+myCar2.num+"個輪子"); //定義第三輛可以直接復用assemble(Car car)這個組裝功能即可 } //我們可以封閉一個汽車組裝的功能,然后調用這個功能就可以 public static void assemble(Car car)//類類型的參數一定要指向對象,要么就是null { car.num = 4; car.color = "red"; car.brand = "BWM"; } } ~~~ 從上面的代碼我們很容易就實現了相同車輛的組裝,提高了代碼的復用性,同時我們注意到,封裝的功能的參數是一個類類型的形式參數,它指向的是一個Car類型的對象. 我們來看一下上面代碼的結果: ![](https://box.kancloud.cn/2016-05-18_573c41af0d831.jpg) 我們從結果上看到確實實現了我們想要實現的相同汽車. 我們再簡單來看一下比較特殊的情況,就是匿名對象. 匿名對象顧名思義就是沒有名字的對象 ~~~ new Car();//匿名對象,其實就是定義對象的簡寫格式 ~~~ 那么匿名對象一般怎么用呢? 我們先看一例子,比如我們要創建一輛車,并運行run方法,那么我們會這樣做: ~~~ Car c = new Car();//這個是有名對象 c.run(); ~~~ 對于上面這種情況,我們可以簡寫為如下一句代碼: ~~~ new Car().run; ~~~ 那么我們就看到匿名對象的**第一種用法**: 當對象對方法僅進行一次調用的時候,就可以簡化成匿名對象. 我們看一段代碼: ~~~ class CarDemo { public static void main(String[] args) { new Car().num = 5; new Car().color = "green"; new Car().run(); } } ~~~ 我們看一下結果: ![](https://box.kancloud.cn/2016-05-18_573c41af22b77.jpg) 對于這三句語句,每執行一名,在堆內存中都會創建新的空間,而不是只創建一個對象.當執行下面的一句語句時,前面的語句已經被釋放了,所以上面的前兩句代碼沒有意義.但是最后一句會被執行,因為該對象對方法只進行了一次調用. 匿名對象的**第二種用法**: 匿名對象可以作為實際參數進行傳遞. 比如前面我們的方法assemble(Car car),我們可以這樣使用: ~~~ assemble(new Car()); ~~~
                  <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>

                              哎呀哎呀视频在线观看