1.1 寫出你認爲本週學習中比較重要的知識點關鍵詞html
接口、Comparable、Comparator、Interface關鍵字java
1.2 嘗試使用思惟導圖將這些關鍵詞組織起來。注:思惟導圖通常不須要出現過多的字。git
1.3 可選:使用常規方法總結其餘上課內容。編程
本週接觸了一種特殊的引用類型--接口數組
Comparable面向接口編程體現了多態性框架
學會了Comparator比較器函數
做業參考文件下載
PTA題集:面向對象2-進階-多態、接口與內部類學習
內容:繼續完善上次的大做業。
注意: 再過幾回課要講Java圖形界面編程,到時候要將該系統升級爲圖形界面。系統的業務邏輯部分應該變化不大,變化較大的地方的是輸入與輸出部分。編碼的時候,請不要將處理輸入(System.in)與輸出(System.out)的代碼與某個業務處理方法綁死。
參考資料:編碼
做業提交結構以下:
1.1 項目簡介表格:
項目碼雲地址(點擊後要求可直接跳到該項目首頁)。
https://gitee.com/YeHei/Javalearn/commit/9dfd0bee568d9b29803194f5a5a879590f8db647
團隊成員表格
學生 | 負責任務 | 博客地址 |
---|---|---|
餘碩銘 | Operate類,Menu類 | |
呂煒彬 | MyInfo類,MainClass類,CommodityInfo類 |
1.2 系統經常使用功能框架圖
1.3 系統整體類圖
類圖繪製參考資料:
提示:在XMind文本方框中,可經過按Shift+Enter
將字豎起來。
1.4 購物車、商品、系統關鍵代碼截圖(主要截取本身負責的部分)
Menu類
Operate類
1.5 其餘:跟上次的系統比較,系統的設計等有何修改。其餘感想。
考慮的更加周到一些吧,把用戶和商品屬性也加入進去
2.1 Guess改造前代碼很簡單,而改造後的代碼使用了抽象類、抽象方法,看起來更復雜,這樣的改造到底有什麼好處呢?
改造以前,代碼輸入輸出只能在控制檯,改造後使用了抽象類,使得輸入輸出可繼承抽象類,而不是隻在一個地方進行實現。
2.2 GuessGame(改造後).java
中有抽象方法與非抽象方法,你以爲抽象類中什麼樣的方法應該聲明爲abstract
,什麼方法不須要聲明爲abstract
直接實現便可。
對於某些不肯定的方法就應該在抽象類中被聲明爲abstract,由於不肯定它的輸入輸出因此定義爲抽象類方便訪問修改。而已經肯定的方法例如圓形,正方形的面積求法就不須要聲明爲abstract
直接實現便可。
2.3 重要:在這個例子中,變化的是什麼,不變的是什麼?嘗試結合abstract等概念進行說明。
正如第二題所說,變的應該是輸入輸出的方法,能夠被修改,而不變的是實現猜數字的具體方法。
3.1 結合PTA 7-1中你的代碼說明,爲何某個類實現了Comparable接口,就能夠直接使用Arrays.sort對該類型的數組進行排序?
Comparable接口是對象之間的比較排序,當某個類實現了Comparable接口後,它的compare to方法就被覆蓋,因此可使用Arrays.sort對該類型的數組進行排序。
3.2 結合PTA 7-2 中你的代碼說明,有了Comparable接口爲何還須要Comparator接口呢?
Comparable接口是對象之間的比較排序,而comparator是一種比較器,當須要實現多種類的排序比較方法時,就須要Comparable接口同時還須要Comparator接口,而7-2中既須要實現姓名的排序,還要比較年齡進行排序。
3.3 之前的做業Shape, Rectangle,Cirlce
中,Shape類中什麼方法應聲明爲abstract
?說出緣由。
計算周長getPermeter()和getArea()的方法應聲明爲abstract,由於無論哪一種形狀都須要共用的這樣的計算周長和麪積的方法,不一樣的是每種的內部計算具體方法不一樣,因此這兩類須要聲明爲抽象類。
3.4 有不少Shape類型對象如Rectangle、Circle。但願使用Arrays.sort對他們進行排序,請寫出相應代碼。並簡述應在哪一個類上實現Comparable
接口比較好?
放在shape類中比較好,把它放在父類中的話子類就能直接繼承不用再進行編寫
3.5 以3.4你編寫的代碼爲例,簡述面向Comparable接口編程、面向父類編程的好處。(注意:必定要結合本身編寫的代碼)
以個人代碼爲例,在shape中使用了Comparable接口編程,那麼在後面的長方形三角形就可使用compare to這個方法。
閱讀Case-StudentDao.zip案例
4.1 a.畫出類關係圖。b.StudentDao
接口有什麼用?
b.StudentDao接口定義了顯示,寫入,讀取學生信息這三種抽象方法,做爲抽象類進行共享,便於後面的修改。
4.2 StudenDaoListImpl
與StudentDaoArrayImpl
有何共同之處?有何區別?
它們都繼承了StudentDao接口
區別是StudenDaoListImpl用ArrayList來存儲學生信息,而StudentDaoArrayImpl是用數組來存儲學生信息。
4.3 結合Test.java中的main函數,簡述面向接口編程的好處。
面向接口編程的好處是咱們能夠直接從StudentDao中調用學生的信息,思想方法結果相同,使得程序更加靈活。
結合題目4案例中的Test.java
的代碼進行分析。不要百度原封不動照搬!
面向接口編程的好處是咱們能夠直接從StudentDao中調用學生的信息,思想方法結果相同,使得程序更加靈活。
題目集:面向對象2-進階-多態接口內部類
須要有兩張圖(1. 排名圖。2.PTA提交列表圖)
須要將每週的代碼統計狀況融合到一張表中。