1. 程式人生 > >201621123030《Java程序設計》第5周學習總結

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

概念 框架 col png 不用 相同 per 簡介 ()

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周學習總結