學號 20172326 《程序設計與數據結構》第八周學習總結
教材學習內容總結
- 后綁定在程序執行時執行
- 多態性可由繼承與接口實現
- 排序有選擇法排序與插入法排序
- 搜索分為線性搜索與二分搜索
算法,同一類型的不同方法可能解決同一問題,但是,效率與難以程度不同
教材學習中的問題和解決過程
- 問題:Java當中的綁定機制
- 首先,編譯時綁定與動態綁定又分別稱為前期綁定和后期綁定。前期綁定:在程序執行前方法已經被綁定,此時由編譯器或其它連接程序實現。例如:C。后期綁定:在運行時根據具體對象的類型進行綁定。重載函數的實際調用版本由編譯器綁定決定,而覆蓋函數的實際調用版本由動態綁定決定。
- 重寫與重載
- 重寫(override):當一個子類繼承一父類,而子類中的方法與父類中的方法的名稱,參數個數、類型都完全一致時,就稱子類中的這個方法重寫了父類中的方法。
- 重載(overload):對于同一個類,如果這個類里面有兩個或者多個重名的方法,但是方法的參數個數、類型、順序至少有一個不一樣,這時候就構成方法重載
區別:重載為函數名相同,參數列表不同,與其他的無關(訪問控制符、返回值類型)。重寫為函數名必須相同、參數列表必須相同。
子類的返回值類型要等于或者小于父類的返回值。代碼調試中的問題和解決過程
- 問題:PP10.5的編寫
問題解決方案:要對Movies進行修改,使得其能夠按照電影名的字母順序進行排序。開始,我仿照書上的例題,對其進行編寫,但是,將Comparable接口與哪個程序進行“對接”?下面進行分析,CompareTo中要將電影名,導演名進行比較,而在DVDCollection中只有數組的方法,在DVD中含有這兩個變量,所以再加上getter方法就行了。獲取這兩個變量后,就可以將進行比較。接著就是排序的問題,這里就可以使用Sorting的方法,通過選擇排序法進行比較。
代碼托管
上周考試錯題總結
錯題1
- Insertion Sort和Selection Sort的算法效率是相同的,均為n的二次方。
錯題2
- 二者算法效率相同,且均為兩個嵌套循環,所以,不需要額外的循環
錯題3
- 抽象方法中可以有非抽象方法,且抽象方法只有聲明,沒有主體
錯題4
- 方法的重載也是多態性的一種體現
錯題5
- 算法的效率為n^2,而由于有n個數據元素,所以在數據量小于一個元素之前可以將數據減半的次數是log2n。
錯題6
- 一個引用變量可以指向有繼承關系的任何類的任何對象
錯題7
- 將不同的字符串輸出,正是體現了多態的特點
錯題8
類引用可以直接調用其他類的方法
學習進度條
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一周 | 110/110 | 1/1 | 20/20 | |
第二周 | 315/425 | 1/2 | 18/38 | |
第三周 | 475/900 | 2/4 | 22/60 | |
第四周 | 600/1500 | 1/5 | 30/90 | |
第五周 | 1215/2715 | 1/6 | 20/110 | |
第六周 | 382/3097 | 1/7 | 20/130 | |
第七周 | 721/3818 | 1/8 | 15/145 | |
第八周 | 771/4589 | 2/10 | 15/160 |
參考資料
- 《Java程序設計與數據結構教程(第二版)》
- 《Java程序設計與數據結構教程(第二版)》學習指導
- java中的綁定、前期綁定、后期綁定三者的概念