作业05-继承、多态、抽象类与接口
1. 本周學習總結
1.1 寫出你認為本周學習中比較重要的知識點關鍵詞
接口,Comparable,Comparator
1.2 嘗試使用思維導圖將這些關鍵詞組織起來。
1.3 可選:使用常規方法總結其他上課內容。
1.接口特點:一個公開的界面
有統一定義的規范
2.面向接口編程就是面向共同行為編程,體現了多態性
3.Comparator比較器
2. 書面作業
1. 面向對象設計大作業
1.1 項目簡介表格:
| 學生 | 負責任務 | 博客地址 |
|---|---|---|
| 孫江濤 | 用戶登錄類 | git地址 |
| 吳俊杰 | 購物車類 | git地址 |
1.2 系統常用功能框架圖
1.3 系統總體類圖
1.4 購物車、商品、系統關鍵代碼截圖
1.5 其他:跟上次的系統比較,系統的設計等有何修改。其他感想。
上周只給出了幾個函數的框架,這種豐富了一點具體內容
2. abstract:閱讀GuessGame抽象類的設計與使用源代碼
2.1 Guess改造前代碼很簡單,而改造后的代碼使用了抽象類、抽象方法,看起來更復雜,這樣的改造到底有什么好處呢?
答:改造之前輸入輸出與控制臺綁定,而改造后無論想在哪個地方輸入輸出只要繼承抽象類即可
2.2 GuessGame(改造后).java中有抽象方法與非抽象方法,你覺得抽象類中什么樣的方法應該聲明為abstract,什么方法不需要聲明為abstract直接實現即可。
答:類中具有共同行為的可以聲明為abstract,可以直接確定的方法就可以不用聲明為abstract.
2.3 重要:在這個例子中,變化的是什么,不變的是什么?嘗試結合abstract等概念進行說明。
答:變化的是輸入輸出的方式,不變的是它的功能。同樣的功能可以在不同的環境下實現,只需要繼承相應的抽象類即可
3. Comparable與Comparator
3.1 結合PTA 7-1中你的代碼說明,為什么某個類實現了Comparable接口,就可以直接使用Arrays.sort對該類型的數組進行排序?
答:因為Comparable里包含CompareTo方法,所以有了Comparable接口就可以用Arrays.sort直接進行排序
3.2 結合PTA 7-2 中你的代碼說明,有了Comparable接口為什么還需要Comparator接口呢?
答:因為Comparator是比較器,它可以比較不同類型之間的排序,而Comparable不行
3.3 以前的作業Shape, Rectangle,Cirlce中,Shape類中什么方法應聲明為abstract?說出原因。
答:在計算周長面積的方法應該聲明為abstract,因為不同形狀計算的公式方法是不一樣的。而定義時不知道它具體的形狀,所以要聲明為抽象類
3.4 有很多Shape類型對象如Rectangle、Circle。希望使用Arrays.sort對他們進行排序,請寫出相應代碼。并簡述應在哪個類上實現Comparable接口比較好?
Shape類上實現Comparable接口比較好,這樣它的所以子類對象都可以繼承它的代碼進行面積排序
3.5 以3.4你編寫的代碼為例,簡述面向Comparable接口編程、面向父類編程的好處。
子類繼承者可以直接在父類代碼中修改在面向Comparable接口編程和面向父類編程中,比如在代碼中需要重寫compareTo()方法,只需要重寫父類Shape的抽象方法,不需要添加Comparable接口,然后直接調用用Arrays.sort()排序即可。
4. 面向接口案例分析
4.1 a.畫出類關系圖。b.StudentDao接口有什么用?
StudentDao定義了三種方法:顯示學生信息,讀取學生信息,寫入學生信息。這樣后期可以很方便的調用使用
4.2 StudenDaoListImpl與StudentDaoArrayImpl有何共同之處?有何區別?
答:它們都繼承StudentDao接口和StudentDao的方法,區別是實現是的具體方法不一樣
4.3 結合Test.java中的main函數,簡述面向接口編程的好處。
答:從main函數可以看出,使用接口后直接用StudentDao調用學生性息,不需要去關心內部其他函數的形式作用
5. 什么是面向接口編程?面向接口編程的好處是什么?
答:面向接口編程就是將定義和實現分離開。面向接口編程的最大好處就是在不確定操作環境的情況下,可以先在接口定義抽象方法,然后按具體情況去繼承抽象方法
3.碼云及PTA
3.1. 碼云代碼提交記錄
3.2 截圖PTA題集完成情況圖
3.3 統計本周完成的代碼量
| 行數 | 新增行數 | 文件數 | 新增文件數 |
|---|---|---|---|
| 1097 | 242 | 304 | 15 |
轉載于:https://www.cnblogs.com/jmu201621123074/p/7704959.html
總結
以上是生活随笔為你收集整理的作业05-继承、多态、抽象类与接口的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装wxpython——python程序
- 下一篇: R语言实战 - 基本统计分析(2)- 频