20155212 2016-2017-2 《Java程序設計》第4周學習總結

20155212 2016-2017-2 《Java程序設計》第4周學習總結

教材學習內容總結

Chapter 6

  • 繼承基本上就是避免多個類間重複定義共同行爲。
  • private成員會被繼承,不過子類沒法直接存取,必須經過父類提供的方法來存取(若是股類願意提供訪問方法的話)。
  • 子類只能繼承一個父類。
  • 繼承可避免類別間重複的行爲定義。
  • 子類別與父類別間會有is-a的關係。
  • 多態:以抽象講法解釋,就是使用單一接口操做多種類型的對象。
  • Java以繼承及界面來實現多態,是次態多態的一種實現。
  • 在從新定義父類別中某個方法時,子類別必須撰寫與父類別方法中相同的簽署。
  • 若是某方法區塊中真的沒有任何程序代碼操做,可使用abstract標示該方法爲抽象方法,該方法不用撰寫{}區塊,直接「;」結束便可。
  • 子類繼承抽象類
    • 繼續標示該方法爲abstract(該子類所以也是個抽象類,必須在class前標示abstract);
    • 操做抽象方法。
  • 被聲明爲protected的成員,相同包中的類能夠直接存取,不一樣包中的類能夠在繼承後的子類直接存取。
  • 若是方法中沒有同名參數,this能夠省略,不過基於程序可讀性,多打個this比較清楚。
  • Java 3個權關鍵字:publicprotectedprivate,共4個權限範圍。權限關鍵字與權限範圍的關係:
關鍵字 類內部 相同包類 不一樣包類
public 可存取 可存取 可存取
protected 可存取 可存取 子類可存取
可存取 可存取 不可存取
private 可存取 不可存取 不可存取
  • 若是一開始不知道使用那個權限,就先使用private,之後是需求再放開權限。html

  • 從新定義方法,父類中的方法權限,只能擴大但不能縮小。java

    e.g.原爲public,子類從新定義時,不可爲privateprotectedgit

  • this()super()只能選擇一個調用,並且必定要在構造函數第一行執行。ubuntu

  • final關鍵字限定修改變量值。函數

  • 若是定義類時沒有使用extend關鍵字指定繼承任何類,那必定是繼承java.lang.Object學習

Chapter 7

-定義行爲,可使用interface關鍵字定義,接口中的方法不能操做,直接表示爲abstract,並且必定是publicthis

  • 類要操做接口,必須使用implements關鍵字。
  • 操做接口表示「擁有行爲」。
  • 類能夠操做兩個以上類,即擁有兩種以上的行爲。
  • 類能夠同時繼承類、操做接口。
  • 使用interface來定義抽象的行爲外觀,方法要聲明爲public abstract,無須且不能有操做。省略public abstract,編譯程序會協助補全。
  • 可使用接口枚舉場數,只能定義爲public static final,可省略。
  • 如有兩個接口都定義了某方法,操做兩個接口的類並不會有錯誤。可是,在設計上要思考:兩個接口都有定義的方法時候表示不一樣的行爲?
  • enum定義了特殊的類,繼承自java.lang.Enum,直接撰寫程序繼承Enum類會被編譯器拒絕。

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

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

  • 照着書上的代碼敲,而後分類放在文件夾時,常常出現缺乏類的編譯錯誤提示。
    • x由於有的代碼書前面有,不會再每一節反覆出現,因此直接把前一節或幾節的.class文件複製過來就行了或者使用import。若是複製.java文件再過來編譯,不免有湊代碼行數之嫌,還增長了麻煩。


- 查了不少資料發現出現這個提示的緣由是:由於我使用了容器,卻沒有用泛型。雖然有錯誤提示,可是仍然能正常編譯,並無影響。.net

代碼託管

  • 由於我換了系統,不少代碼在kali上寫的,可是pull在ubuntu上,因此代碼統計有些問題,把前幾天的代碼都計算在今天。

上週考試錯題總結

  • 填空:Linux Bash中,(grep )命令能夠進行全文搜索。
    • 對Linux命令仍是有不少沒有掌握。
  • 填空:~0b1010的十進制值是(-11)。
    • 忘記在前面補0。取反碼應該是11110101,由於是負數取補碼10001011,即-11。
  • 填空:兩個Integer對象比較大小,可使用(comareTo())方法
    • 書上知識沒有記住,誤記成了equal(),如今已經掌握了、
  • 判斷:Java中類總會有默認構造方法。(X)
    • 概念不牢。
  • 填空:「30」轉化爲byte類型的30的語句是(Byte.parseByte(「30」);)。
    • 前面知識沒有及時複習,致使掌握不夠牢固。
  • 判斷:private不能用在構造方法上,這樣就沒法建立對象了。(X)
    • 對private沒有掌握。
  • 填空:Java中類的成員變量必須進行初始化,不然會出語法錯誤。(X)
    • 將c與java有些混淆。
  • 填空:Java中方法參數只用(傳值)調用。
    • 沒有記住。

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

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
目標 5000行 30篇 400小時
第一週 18/18 1/1 10/10
第二週 172/190 1/2 18/38
第三週 464/654 1/3 23/61
第四周 876/1530 1/4 28/89

嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進本身的計劃能力。這個工做學習中很重要,也頗有用。
耗時估計的公式
:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。設計

參考:軟件工程軟件的估計爲何這麼難軟件工程 估計方法調試

  • 計劃學習時間:28小時

  • 實際學習時間:28小時

  • 改進狀況:終於有一週實際和計劃相同,可能這是由於第七章和第八章內容太多了,爲了完成任務不得不努力。有壓力纔能有動力這句話真的頗有道理。

  • 有空多看看現代軟件工程 課件 軟件工程師能力自我評價表

參考資料

相關文章
相關標籤/搜索