201621123030《Java程序設計》第5周學習總結
1. 本周學習總結
1.1 寫出你認為本周學習中比較重要的知識點關鍵詞
關鍵字:接口
1.2 嘗試使用思維導圖將這些關鍵詞組織起來。註:思維導圖一般不需要出現過多的字。
2. 書面作業
1. 面向對象設計大作業(團隊項目,2-3人)
內容:繼續完善上次的大作業。
註意: 再過幾次課要講Java圖形界面編程,到時候要將該系統升級為圖形界面。系統的業務邏輯部分應該變化不大,變化較大的地方的是輸入與輸出部分。編碼的時候,請不要將處理輸入(System.in)與輸出(System.out)的代碼與某個業務處理方法綁死。
1.1 項目簡介表格:
學生 | 負責任務 | 博客地址 |
---|---|---|
葉崇峻松 | ShoppingCart類,主函數 | https://www.cnblogs.com/jerkol/ |
馬玉蘭 | Goods抽象類,Boolr類,user類 | http://www.cnblogs.com/288myl/ |
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接口是針對對象之間的比較排序,采用Comparable接口,在該類就有compareTo的方法,可以直接使用Arrays.sort排序。
3.2 結合PTA 7-2 中你的代碼說明,有了Comparable接口為什麽還需要Comparator接口呢?
要在類中定義compareTo方法才能使用Arrays.sort對輸入的數組進行排序,而Comparator可以在類外定義compareTo方法,然後就是用Collections.sort方法對數組進行排序。
3.3 以前的作業Shape, Rectangle,Cirlce中,Shape類中什麽方法應聲明為abstract?說出原因。
Shape類中getPerimeter()方法(周長),getArea()方法(面積)應該聲明為abstract,它的子類對面積和周長的求算法不一樣,要共用相同的父類裏的計算周長和面積的方法,就需要聲明為抽象類
3.4 有很多Shape類型對象如Rectangle、Circle。希望使用Arrays.sort對他們進行排序,請寫出相應代碼。並簡述應在哪個類上實現Comparable接口比較好?
根據面積對其進行排序:
在shape類中比較好
3.5 以3.4你編寫的代碼為例,簡述面向Comparable接口編程、面向父類編程的好處。(註意:一定要結合自己編寫的代碼)
用Comparable接口面向父類編程,把其中的compareTo方法聲明為abstract類型,之後在其子類進行代碼編寫,在對父類進行排序,不必考慮其具體類,然後完成排序。
4. 面向接口案例分析
4.1 a.畫出類關系圖。b.StudentDao接口有什麽用?
Student類:一個簡單的類
StudentDao接口:有三個抽象方法:讀寫,顯示Student
4.2 StudenDaoListImpl與StudentDaoArrayImpl有何共同之處?有何區別?
共同之處:都用了StudentDao接口
不同之處:使用StudentDaoArrayImpl有大小限制,而使用StudenDaoListImpl無大小限制,因為List規定,如果size超出數組大小,那麽將會為其增加一個size長度空間。
4.3 結合Test.java中的main函數,簡述面向接口編程的好處。
提高彈性,增強可維護性
5. 什麽是面向接口編程?面向接口編程的好處是什麽?
定義接口,對繼承該接口的類提供抽象的方法就是面向接口編程
提高彈性,增強可維護性
3.碼雲及PTA
題目集:面向對象2-進階-多態接口內部類
3.1. 碼雲代碼提交記錄
3.2 截圖PTA題集完成情況圖
3.3 統計本周完成的代碼量
周次 | 總代碼量 | 新增代碼量 | 總文件數 | 新增文件數 |
---|---|---|---|---|
1 | 330 | 330 | 5 | 5 |
2 | 625 | 322 | 11 | 6 |
3 | 1047 | 422 | 16 | 5 |
4 | 1472 | 425 | 21 | 5 |
6 | 1978 | 506 | 27 | 6 |
201621123030《Java程序設計》第5周學習總結