<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之旅 廣告
                ### 1.1 **項目目標** **1.1.1 知識目標** (1)能理解面向對象思想,掌握類的編寫方法 (2)能理解并會使用面向對象的特性——封裝、繼承、多態 (3)會使用面向對象三大特征編寫程序 **1.1.2 能力目標** (1)能夠使用面向對象的思想思考現實問題 (2)能夠對現實世界的事物進行抽象與歸類 (3)能夠靈活采用訪問修飾符修飾類的屬性和方法,達到信息封裝的目的 (4)能夠通過繼承的方式,描述問題中的實際關系并設計父類和子類 (5)能夠通過重載和重寫實現程序中的多態 **1.1.3 素養目標** (1)明確類的設計規范,類的命名規范,屬性的命名規范,方法的命名規范 (2)能夠就封裝繼承多態的三大特性,以面向對象的思維方式思考程序要解決的問題 ### 1.2 **案例描述** &emsp;&emsp;使用面向對象實現租車系統,系統用戶需要完成車輛租賃的操作,并進行租金結算記錄。 需求說明: &emsp;&emsp;汽車租賃系統,有兩種車,分別是轎車和客車,所以需要設計兩個類,轎車類和客車類,這兩個類都要繼承自共同的父類,汽車類。使用面向對象實現租車系統,系統用戶需要完成車輛租賃的操作,并進行租金結算記錄。汽車的租賃信息如下表所示: ![](http://h.yiniuedu.com/8498197ec6e9c7618941c0ad3c743ecf) ### 1.3 **實現效果** ![](http://h.yiniuedu.com/831e707df01390117d17822148490024)![](http://h.yiniuedu.com/ccd23381304d992326d856a98a37d8ed) ### 1.4 **知識點** 本實訓項目涉及到的知識點如下: &emsp;&emsp;類和對象 &emsp;&emsp;繼承、封裝和多態 &emsp;&emsp;方法的重寫和重載 ### 1.5 **案例分析** #### **1.5.1 功能劃分** &emsp;&emsp;系統基本模塊包括: ![](http://h.yiniuedu.com/b130437d780fae29dd268add5aea0b98) #### **1.5.2 概要設計** &emsp;&emsp;類和屬性 汽車類:車牌號、品牌、日租金 客車類:車牌號、品牌、日租金、座位數 轎車類:車牌號、品牌、日租金、型號 汽車業務類:汽車類數組、轎車類數組 汽車租賃管理類:忽略 &emsp;&emsp;首先我們先來看看誰是父類,誰是子類,根據類和屬性,我們知道汽車類有:車牌號、品牌、日租金。轎車類有:車牌號、品牌、型號、日租金。客車類有:車牌號、品牌、日租金、座位數等這些參數。那么我們可以發現轎車類和客車類他們共有的屬性是車牌號、品牌和日租金,我們就可以把車牌號、品牌和日租金這三個屬性提取到父類中去,也就是汽車類中,租金我們搞一個方法。那么此時轎車類和客車只用去繼承父類就可以。 #### **1.5.3 詳細設計** ![](http://h.yiniuedu.com/6902a77b50a154ea9b075c0d6e7ac000) ### 1.6 **實現要點** 租車系統設計與實現,請參照編碼命名規范進行設計與實現。 項目名稱:CarRentalSystem 包名稱:com.yiniuedu.cms.rental 1.定義抽象父類Vehicle類,包含一個抽象方法,計算租金的方法public abstract double calRent(int days);。 2.定義Car類,屬性車牌號、品牌、日租金繼承自父類,特有屬性型號。方法有:重新父類計算租金的方法。 3.定義Bus類,屬性車牌號、品牌、日租金繼承自父類,特有屬性座位數。方法有:重新父類計算租金的方法。 4.定義VehicleBusiness類,有轎車數組和客車數組。有初始化轎車和客車數組的方法,有租轎車和租客車的方法。 5.編寫測試類TestVehicle類,通過系統界面提示完成租車業務并計算租金。 ### 1.7 **重難點解析** 類的抽象和編寫 封裝、繼承、多態的用法 方法的重載與重寫 ### 1.8 **關鍵代碼** ``` //轎車租金的計算方法 public double calRent(int days) { ??double price = getDataRent() * days; ??// 折扣計算 ??if (days > 7 && days <= 30) { ???price *= 0.9; ??} else if (days > 30 && days <= 150) { ???price *= 0.8; ??} else if (days > 150) { ???price *= 0.7; ??} ??return price; ?} //租車業務類里面租車的兩個方法 // 租轎車 ?public Car rentCar(String brand, String type) { ??Car c = null; ??for (Car car : car) { ???if (car.getBrand().equals(brand) && car.getCarType().equals(type)) { ????c = car; ????break; ???} ??} ??return c; ?} ?// 租客車 ?public Bus rentBus(String brand, int seatNum) { ??Bus b = null; ??for (Bus bus : bus) { ???if (bus.getBrand().equals(brand) && bus.getSeatNum() == seatNum) { ????b = bus; ????break; ???} ??} ??return b; ?} ``` ### 1.9 **案例總結** &emsp;&emsp;在進行基于面向對象思想的編程時,需求描述中的名詞,就是屬性,動詞就是方法。還要充分利用繼承、封裝和多態的思想,使代碼更加簡潔,更加易于修改,增強代碼的可讀性。 &emsp;&emsp;如果加入新的車型,大家思考如何實現,有沒有更好的辦法實現。 ### **練習任務** 現有新的需求,要求加入新的車型:貨車,貨車有實際載重量。大家根據課上學習內容,完成貨車租車業務和租金的計算。 貨車(Truck),載重量(capacity) <table> <tr> <td>車型</td> <td>具體信息</td> <td>日租金</td> <td>折扣</td> </tr> <tr> <td rowspan="4">貨車</td> <td>解放 35噸 (魯Q88888) </td> <td>5000</td> <td rowspan="4">大于3天9折</br>大于7天8折</br>大于30天7折</br>大于180天6折</td> </tr> <tr> <td >解放 25噸 (魯Q99999)</td> <td >4500</td> </tr> <tr> <td >威鈴 10噸 (魯Q77777)</td> <td >3500</td> </tr> <tr> <td >威鈴 8噸 (魯Q66666)</td> <td >3000</td> </tr> </table> 代碼獲取請加微信:yiniujiaoyu
                  <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>

                              哎呀哎呀视频在线观看