201621123069 《Java程序設計》第5周學習總結

1. 本週學習總結

1.1 寫出你認爲本週學習中比較重要的知識點關鍵詞html

  接口、Comparable、Comparator、Interface關鍵字java

1.2 嘗試使用思惟導圖將這些關鍵詞組織起來。注:思惟導圖通常不須要出現過多的字。git

1.3 可選:使用常規方法總結其餘上課內容。編程

  本週接觸了一種特殊的引用類型--接口數組

  Comparable面向接口編程體現了多態性框架

  學會了Comparator比較器函數

2. 書面做業

做業參考文件下載
PTA題集:面向對象2-進階-多態、接口與內部類學習

1. 面向對象設計大做業(團隊項目,2-3人)

內容:繼續完善上次的大做業。
注意: 再過幾回課要講Java圖形界面編程,到時候要將該系統升級爲圖形界面。系統的業務邏輯部分應該變化不大,變化較大的地方的是輸入與輸出部分。編碼的時候,請不要將處理輸入(System.in)與輸出(System.out)的代碼與某個業務處理方法綁死。
參考資料:編碼

使用Processon畫圖設計

做業提交結構以下:

1.1 項目簡介表格:

項目碼雲地址(點擊後要求可直接跳到該項目首頁)。

 https://gitee.com/YeHei/Javalearn/commit/9dfd0bee568d9b29803194f5a5a879590f8db647

團隊成員表格

學生 負責任務 博客地址
 餘碩銘  Operate類,Menu類  
 呂煒彬   MyInfo類,MainClass類,CommodityInfo類  

1.2 系統經常使用功能框架圖

1.3 系統整體類圖
類圖繪製參考資料:

UML類圖幾種關係的總結

 

提示:在XMind文本方框中,可經過按Shift+Enter將字豎起來。

1.4 購物車、商品、系統關鍵代碼截圖(主要截取本身負責的部分)

Menu類

 

Operate類


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接口後,它的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這個方法。

4. 面向接口案例分析  

閱讀Case-StudentDao.zip案例
4.1 a.畫出類關係圖。b.StudentDao接口有什麼用?

 

 b.StudentDao接口定義了顯示,寫入,讀取學生信息這三種抽象方法,做爲抽象類進行共享,便於後面的修改。

4.2 StudenDaoListImplStudentDaoArrayImpl有何共同之處?有何區別?

  它們都繼承了StudentDao接口

 區別是StudenDaoListImpl用ArrayList來存儲學生信息,而StudentDaoArrayImpl是用數組來存儲學生信息。

4.3 結合Test.java中的main函數,簡述面向接口編程的好處。

面向接口編程的好處是咱們能夠直接從StudentDao中調用學生的信息,思想方法結果相同,使得程序更加靈活。

  

5. 什麼是面向接口編程?面向接口編程的好處是什麼?

結合題目4案例中的Test.java的代碼進行分析。不要百度原封不動照搬!

面向接口編程的好處是咱們能夠直接從StudentDao中調用學生的信息,思想方法結果相同,使得程序更加靈活。

3.碼雲及PTA

題目集:面向對象2-進階-多態接口內部類

3.1. 碼雲代碼提交記錄

  • 在碼雲的項目中,依次選擇「統計-Commits歷史-設置時間段」, 而後搜索並截圖

3.2 截圖PTA題集完成狀況圖

須要有兩張圖(1. 排名圖。2.PTA提交列表圖)

3.3 統計本週完成的代碼量

須要將每週的代碼統計狀況融合到一張表中。

相關文章
相關標籤/搜索