20172332 2017-2018-2 《程序設計與數據結構》第八周學習總結
阿新 • • 發佈:2018-05-01
com 分享圖片 階段 教材 運行時 user mis 按順序 現在
20172332 2017-2018-2 《程序設計與數據結構》第八周學習總結
教材學習內容總結
第十章多態性
- 1.後綁定。
- 效率低於編譯階段的綁定效率。
- 2.利用繼承實現多態性。
- 3.利用接口實現多態性。
- 4.排序。
- 選擇法排序。(從左到右掃描到最小的數)
- 插入法排序。(依次選取數與之前排列好的數列進行比較然後插入)
- 綜合考慮,選擇法優於插入法。
- 5.搜索。
- 線性搜索。
- 二分搜索。(必須是按順序排列好的)
- 二分搜索的效率高於線性搜索,但是線性搜索的實現比二分搜索簡單。
- 6.多態性設計(多個不同對象執行相同的基本行為,並且行為的不同實現方式取決於對象的具體類型。)
教材學習中的問題和解決過程
- 問題1:二分搜索時若數組元素個數為雙數怎麽取中間值?
- 問題1解決方案:選中間兩值相加除以2,然後取整為中間值,進行比較。
- 問題2:這種實例化語句,如Speaker current = new Philosopher();,怎麽理解?
- 問題2解決方案:這就與多態性有關,可以理解為定義一個實現Speaker接口的類Philosopher,就可以將Philosopher對象(就是current)賦給Speaker接口引用變量。
代碼調試中的問題和解決過程
問題1:出現紅線的原因
問題1解決方案:只能在類中實現接口,不能在有main函數的中實現。
代碼托管
上周考試錯題總結
1.Abstract methods are used when defining
- A . interface classes
- B . derived classes
- C . classes that have no constructor
- D . arrays
- E . classes that have no methods
- 答案:A ;我選的:E
- 分析:接口中全是抽象方法。
- 單詞:1.derived:繼承。
2.A variable declared to be of one class can later reference an extended class of that class. This variable is known as
- A . protected
- B . derivable
- C . cloneable
- D . polymorphic
- E . none of the above, a variable declared to be of one class can never reference any other type of class, even an extended class
- 答案:D ;我選的:A
- 分析:此題與多態性有關,當時還沒學,現在學完了多態,很容易理解。(簡單理解就是,A類型的變量可以用B類型的方法。)
- 單詞:1.polymorphic:多態。
3.In order to determine the type that a polymorphic variable refers to, the decision is made
- A . by the programmer at the time the program is written
- B . by the compiler at compile time
- C . by the operating system when the program is loaded into memory
- D . by the Java run-time environment at run time
- E . by the user at run time
- 答案:D ;我選的:A
- 分析:多態變量可以采取許多不同的類型,但不知道它在執行程序之前采取了什麽類型。在引用變量時,必須做出決定。這個決定是由運行時環境基於變量的最新賦值來實現的。
- 單詞:1.compiler:編譯程序。
點評過的同學博客和代碼
- 本周結對學習情況
- 20172326
- 20172313
- 結對學習內容
- 第十章多態
- 上周博客互評情況
- 20172326
- 20172313
其他(感悟、思考等,可選)
- 本周內容中的排序和搜索,在學數組時的視頻中有提及,所以不是很難理解。至於有關多態方面的知識,可能會用, 但是還不是很能理解。
學習進度條
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一周 | 182/182 | 1/1 | 10/10 | |
第二周 | 458/640 | 1/2 | 15/25 | |
第三周 | 469/1109 | 2/4 | 18/43 | 學會IDEA的使用和調試,學會jdb調試。 |
第四周 | 1536/2645 | 1/5 | 24/67 | |
第五周 | 980/3625 | 1/6 | 25/92 | |
第六周 | 870/4495 | 1/7 | 16/108 | |
第七周 | 455/4950 | 2/9 | 22/130 | |
第八周 | 1322/6272 | 2/11 | 28/158 |
計劃學習時間:20小時
實際學習時間:28小時
改進情況:本周開始有四則運算的項目,所以在java學習中花費的時間更多,因此博客也多一篇。
參考資料
- 《Java程序設計與數據結構教程(第八版)》
20172332 2017-2018-2 《程序設計與數據結構》第八周學習總結