20172316 2017-2018-2《程序設計與數據結構》第八週學習總結

20172316 2017-2018-2《程序設計與數據結構》第八週學習總結

教材學習內容總結

  • 本章的核心詞是多態性
  • 開篇介紹了綁定,特別是後綁定。綁定就是將方法名和執行的對象對應起來,從而區別同一方法在不一樣對象上的應用。前(靜態)綁定是編程時早已肯定好的,綁定效率高。後(動態)綁定效率低,但勝在靈活,本章要用到的綁定方式就是後綁定。
  • 多態性,我理解的就是同一方法能夠做用於不一樣的類的性質。
  • 實現多態性有兩種方式:繼承、接口。
    由繼承產生的多態性咱們已經見識過了,ArrayList在未規定元素類型以前能夠存儲任何一類的對象,由於全部的類都是Object類的子類。書中例子move()是一個方法,引用變量Animal creature = new Horse指向Horse後(Horse是Animal子類),creature.move()就調用Horse中的move()方法。
    利用接口實現多態性也很方便,感受和繼承中的抽象類實現多態性十分類似。接口能夠繼承接口、類能夠繼承接口,但接口不能繼承類。
  • 排序,書中有兩種排序:選擇法排序、插入法排序,排序的基礎是Comparable接口的實現。經過比較「大小」對對象進行有序的排列。簽證所執行的交換操做次數少,優於插入法。
  • 搜索,書中提供兩個搜索:線性搜索、二分搜索,二分搜索效率較高,但前提是搜索池已通過排序。

教材學習中的問題和解決過程

本週教材學習中無重大問題,老師和助教解答很詳細。html


代碼調試中的問題和解決過程

  • 問題1:想要嘗試一下繼承實現多態,基本思路爲Demo類中i = 4,SuperDemo類中i = 7,最後輸出結果應該是SuperDemo類中的7,結果倒是SuperDemo = 0
    git

  • 問題1解決方案:查找網上相似的問題,獲得一點啓發。執行new SuperDemo()的時候先調用了父類的Demo(),而該構造裏邊又引用了子類的show方法,但那時候子類構造還未執行,i變量僅僅被分配了內存並賦予默認的0,因此打印的是0。應該是這樣。編程


代碼託管

(statistics.sh腳本的運行結果截圖)數據結構


上週考試錯題總結

  • 錯題1: Which of the following is true regarding Java classes?
    正確答案:A .All classes must have 1 parent but may have any number of children (derived or extended) classes
    緣由:每個類都直接或者間接的是Object類的子類。函數

  • 錯題2:A variable declared to be of one class can later reference an extended class of that class. This variable is known as
    正確答案:D .polymorphic
    緣由:沒有很好的理解題目意思,覺得是「一個類中的變量能夠被本身的子類引用」之類的,從而誤選爲protected。學習

  • 錯題3:In order to determine the type that a polymorphic variable refers to, the decision is made
    正確答案:D .by the Java run-time environment at run time
    緣由:多態性引用的類型判斷是在程序運行時,也就是動態綁定。設計

  • 錯題4:Using the reserved word, super, one can
    正確答案:E .none of the above
    緣由:super保留字既能引用構造函數,也能引用方法和數據。調試

  • 錯題5:If class AParentClass has a protected instance data x, and AChildClass is a derived class of AParentClass, then AChildClass can access x but can not redefine x to be a different type.
    正確答案:B .false
    緣由:這是能夠實現的,經過保留字super的使用。code


學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 195/195 1/4 20/20 對代碼產生了很大興趣
第二週 309/504 1/5 20/40 打字速度明顯提高
第三週 311/815 2/7 25/65
第四周 474/1289 1/8 30/95 抗...抗壓能力增強?
第五週 260/1549 1/9 15/110 瞭解到預習的重要性
第六週 358/1907 2/11 20/130 打字速度明顯提高
第七週 780/2687 2/13 15/145 學會使用JUnit
第八週 2124/4811 2/10 15/160

結對互評

20172319唐才銘htm

  • 「向上轉型與向下轉型」不是教材學習中的問題,而是測驗中的問題,不過總結得很好;
  • PP10.4輸出結果能夠更整齊。
    20172329王文彬
  • 對於參考材料的引用直接使用截圖可能不是一個好的選擇。

參考資料

相關文章
相關標籤/搜索