1. 程式人生 > >20172332 2017-2018-2 《程序設計與數據結構》第八周學習總結

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

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 《程序設計與數據結構》第八周學習總結