學號 2019-2020-1 《數據結構與面向對象程序設計》第五周學習總結

教材學習內容總結

  • 了解String類
    常量對象:常量池中的數據在程序運行期間再也不允許改變。
    String對象:用戶無法輸出String對象的引用。
  • object類:所有Java類都直接或間接地由object類派生。(Java的每一個類都繼承toString和equals方法)
    繼承主要表達的是“是”這個關系。子類是父類的一個更具體的類。
  • super用來調用父類的構造方法。
  • 對于層次結構,我覺得就是將共用性強的類提高在較高的層次,這樣引用的時候,更加的方便。同時,應知道Object類是沒有父類的。
  • 字符串與基本數據的相互轉化
    (字符串轉基本數據類型)例子:
    Integer類調用類方法public static int parseInt(String s)實現將數字字符轉化為數字。
    (基本數據類型轉字符串)例子:
    String類調用類方法public static String valueOf(byte n)將數值轉化為String對象,或者調用toString()方法獲得該對象的字符串表示。
  • 字符串與字符數組的相互轉換
    (字符串轉字符字符數組)例子:
    public char[] toCharArray()將一個字符串全部轉化為字符數組,或者使用getChars
    (字符數組轉字符串):直接用簡單的初始化字符串的方式即可。

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

  • 問題1:子類是否可以重寫父類的所有方法。
  • 問題1解決方案:構造方法時一個特殊的方法,與類名相同,但是沒有返回類型。如果試圖重寫父類的構造方法,將會產生語法錯誤,因為除了構造方法之外的所有方法都必須有返回類型。
  • 問題2:為什么抽象類不包含抽象代碼
  • 問題2解決方案:抽象類可以沒有抽象方法,但是如果你的一個類已經聲明成了抽象類,即使這個類中沒有抽象方法,它也不能再實例化,即不能直接構造一個該類的對象。如果一個類中有了一個抽象方法,那么這個類必須聲明為抽象類,否則編譯通不過。對于抽象方法,一定要用public abstract修飾抽象方法,而privateprotected不可以。如果一個類中有抽象方法,那么這個類一定是抽象類。

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

  • 問題1:運行循環輸入時報錯
  • 問題1解決方案:輸入時按照規定的輸入數據類型依次輸入

代碼托管

上周考試錯題總結

  • 錯題1
    The instruction super( ); does which of the following?
    A .calls the method super as defined in the current class
    B .calls the method super as defined in the current class'parent class
    C .calls the method super as defined in java.lang
    D .calls the constructor as defined in the current class
    E .calls the constructor as defined in the current class'parent class
    正確答案: E 你的答案: B
    解析:指令超級表示對當前類的父類中某些內容的調用。因為沒有消息,而只有Super(),所以它是對父類構造函數的調用。
  • 錯題2
    Two children of the same parent class are known as
    A .aliases
    B .relatives
    C .clones
    D .brothers
    E .siblings
    正確答案: E 你的答案: D
    解析:父母相同的兩個子女之間的關系被稱為兄弟姐妹(兄弟關系意味著一種性別)。克隆是同一個對象的副本,別名是同一個對象。在Java中,兄弟和親屬不用于定義類之間的關系。
  • 錯題3
    The relationship between a parent class and a child class is referred to as a(n) ________ relationship.
    A .has-a
    B .is-a
    C .was-a
    D .instance-of
    E .alias
    正確答案: B 你的答案: A
    解析:術語“is-a”用于表示子類是父類的類型。例如,畢業生是學生的一種類型。子類是一個更特定的類型。haf-關系指的是類的屬性或元素(例如,學生有GPA)和實例-指類和該類實例化對象之間的關系。沒有WAS-a關系和別名表示引用同一個對象或實例的兩個變量。
  • 錯題4
    Which of these is correct?
    A .a base class is a parent class or super class
    B .a base class is a child class or derived class
    C .a child class is a super class of its parent
    D .a parent class is a subclass of its child
    E .none of the above
    正確答案: A 你的答案: C
    解析:術語、基類、父類、超類是相互之間的同義詞.它們都意味著類將被用作繼承的基礎,隨后的類將擴展(繼承)基類。
  • 錯題5
    Java doesn't support multiple inheritance; but it does support the implementation of multiple Interfaces.
    A .true
    B .false
    正確答案: A 你的答案: B
    解析:單繼承是Java的優點之一。通過實現多個接口,可以實現多繼承的大部分優點。

結對及互評

評分標準

  1. 正確使用Markdown語法(加1分)

  2. 模板中的要素齊全(加1分)

  3. 教材學習中的問題和解決過程, 3個問題加3分

  4. 代碼調試中的問題和解決過程, 2個問題加2分

  5. 本周有效代碼超過300分行的(加2分)

  6. 感想,體會不假大空的加1分

  7. 排版精美的加一分

  8. 進度條中記錄學習時間與改進情況的加1分

  9. 有動手寫新代碼的加1分

  10. 課后選擇題有驗證的加1分

  11. 錯題學習深入的加1分

  12. 點評認真,能指出博客和代碼中的問題的加1分

  13. 結對學習情況真實可信的加1分

點評模板:

  • 博客中值得學習的或問題:

  • 代碼中值得學習的或問題:
    代碼增長量多,說明結對的同學這周很努力的在學習Java,我也要努力學習Java了

  • 基于評分標準,我給本博客打分:15分。

點評過的同學博客和代碼

  • 本周結對學習情況
    • 20182313
    • 結對學習內容
      • 學習繼承的相關概念
      • 學習編寫客戶端和服務器
      • 學習編寫分數運算的有理數計算器

其他(感悟、思考等,可選)

學習進度條

| | 代碼行數(新增/累積)| 博客量(新增/累積)|學習時間(新增/累積)|
| -------- | :----------------??:----------------??:---------------: |:-----??
| 目標 | 5000行 | 30篇 | 400小時 | |
| 第一周 | 168/168 | 2/2 | 22/22 | |
| 第二周 | 300/500 | 1/3 | 16/38 | |
| 第三周 |500/1000 | 2/5 | 22/60 |
| 第四周 |605/1460 |2/7|35/95
|第五周|1526/2986|2/9|20/115
參考:軟件工程軟件的估計為什么這么難軟件工程 估計方法

  • 計劃學習時間:20小時

  • 實際學習時間:20小時

參考資料