日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

201621123028《Java程序设计》第5周学习总结

發布時間:2024/9/21 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 201621123028《Java程序设计》第5周学习总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作業05-繼承、多態、抽象類與接口

1.本周學習總結

1.1寫出你認為本周學習中比較重要的知識點關鍵詞。

關鍵字:接口,interface關鍵字,implements關鍵字,has-a關系,Comparable,abstract。

1.2嘗試使用思維導圖將這些關鍵詞組織起來。注:思維導圖一般不需要出現過多的字。

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

2. 書面作業

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

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

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

1.1 項目簡介表格:

項目碼云地址(點擊后要求可直接跳到該項目首頁)。
團隊成員表格

學生負責任務博客地址
鄭玉波User類,ShoppingCart類鄭玉波的碼云地址
占恒Commodity類,WalMart類占恒的碼云地址

1.2 系統常用功能框架圖

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

1.3 系統總體類圖

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

因為還沒有學到使用文件,所以現在的登錄與注冊只有大體框架。

1.5 其他:跟上次的系統比較,系統的設計等有何修改。其他感想。

和上次有所不同,在建議下將登錄和注冊作為方法而不是類,且放在了WalMart類中。

2. abstract:閱讀GuessGame抽象類的設計與使用源代碼

Guess改造前代碼很簡單,而改造后的代碼使用了抽象類、抽象方法,看起來更復雜,這樣的改造到底有什么好處呢?

改造之前:

改造之后:

??這樣子改造將所要輸入和輸出的數字抽象化,這樣子就可以不僅僅在控制臺進行這個猜字游戲,如果想在圖形界面等其他地方實現這個游戲就會非常方便,這個程序就非常靈活了。

2.2 GuessGame(改造后).java中有抽象方法與非抽象方法,你覺得抽象類中什么樣的方法應該聲明為abstract,什么方法不需要聲明為abstract直接實現即可。

??顯然輸入輸出這個方法需要聲明為abstract,方便在不同環境下實現。而將所輸入的數字與隨機數字進行比較可以不用聲明為抽象方法,因為不管在什么環境下這個方法都是一樣的。

2.3 重要:在這個例子中,變化的是什么,不變的是什么?嘗試結合abstract等概念進行說明。

??很顯然,運行環境是變化的,在文本下,在控制臺上或者在圖形界面等等,但是這些方法是不變的,都是輸入輸出,比較數字的函數也是相同的。雖然輸入輸出的方法是抽象的,但是當出現了某個類用來告訴我們實現的環境是在哪里時,這幾個方法也變得具體了。正如三生萬象,一個抽象最后會變成很多種的實現。當抽象的方法被用到了,就實現了繼承的思想。

3. Comparable與Comparator

3.1 結合PTA 7-1中你的代碼說明,為什么某個類實現了Comparable接口,就可以直接使用Arrays.sort對該類型的數組進行排序?

??總所周知,Arrays類中的sort方法是可以對對象數組進行排序的,但是這是有前提的,就是所傳入的對象必須實現了接口Comparable(java.lang),而且還要覆蓋compareTo這個方法。

3.2 結合PTA 7-2 中你的代碼說明,有了Comparable接口為什么還需要Comparator接口呢?

??因為用到了Arrays.sort進行排序,而它是對所有實現Comparable的對象進行排序。如果這個時候相對某一個對象進行排序,那僅僅的Comparable是不行的,這時Comparator出場了,它和Comparable不一樣的是,Comparator接口是在一個獨立的類中進行比較的,而且它可以指定排序的順序。

3.3 以前的作業Shape, Rectangle,Cirlce中,Shape類中什么方法應聲明為abstract?說出原因。

方法1abstract double getArea();和abstract double getPerimeter();聲明為抽象方法,因為對于抽象類Shape,可以是很多不同的圖形,但是他們的面積和周長的求法不一樣,所以要定義為抽象的。

3.4 有很多Shape類型對象如Rectangle、Circle。希望使用Arrays.sort對他們進行排序,請寫出相應代碼。并簡述應在哪個類上實現Comparable接口比較好?

應在Shape類類里實現接口比較好。

3.5 以3.4你編寫的代碼為例,簡述面向Comparable接口編程、面向父類編程的好處。(注意:一定要結合自己編寫的代碼)

我在Shape類中實現接口,那么在Rectangle類、Circle類中就能實現Comparable,這樣最后可以直接對Shape使用Array.sort進行排序,增加了許多靈活性。

4. 面向接口案例分析

4.1 a.畫出類關系圖。b.StudentDao接口有什么用?

a.

b.StudentDao接口建立了三個方法,判斷學生信息寫入是否成功,讀取學生的信息和展示全部學生信息。

4.2 StudenDaoListImpl與StudentDaoArrayImpl有何共同之處?有何區別?

公共點是都是實現對學生信息的寫入等,不同點是StudenDaoListImpl是使用了ArrayList來動態實現的,但是StudentDaoArrayImpl是用數組來實現的。

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

好處:

1.更加抽象,更加面向對象
2.提高編程的靈活性
3.實現高內聚、低耦合,提高可維護性,降低系統維護成本。

這個代碼是來存放學生的信息的,在Test的類里面我們可以不用知道如何實現的,StudenDaoListImpl與StudentDaoArrayImpl兩種不同的結構都能實現寫入并讀取學生的信息,方便了許多,更加的結構化并提高了編程的效率。

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

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

面向接口的編程方式是面向對象設計的一個原則,使用這種編程思想,我們可以容易地寫出具有可復用性的代碼,這對于代碼的理解和維護具有很大的幫助

都知道接口不允許實例化,也就是說面向接口的編程和面向實現編程不一樣,比如對于汽車所用的輪胎,拿面向實現說,可能就要考慮輪胎的品牌,性能等,會降低編程的靈活和可復用的性能。但是面向接口編程不在乎輪胎的品牌,能轉動就行。這樣就大大增強靈活性和可復用性。

3.碼云及PTA

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

3.1. 碼云代碼提交記錄

  • 在碼云的項目中,依次選擇“統計-Commits歷史-設置時間段”, 然后搜索并截圖

3.2 截圖PTA題集完成情況圖

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

3.3 統計本周完成的代碼量

需要將每周的代碼統計情況融合到一張表中。

周次總代碼量新增代碼量總文件數新增文件數
11911911818
2571380191
31027456201
40000
51359332255
620617023510

轉載于:https://www.cnblogs.com/bbshenme/p/7701799.html

總結

以上是生活随笔為你收集整理的201621123028《Java程序设计》第5周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。