20162303 2016-2017-2 《程序設計與數據結構》第六週學習總結

20162303 2016-2017-2 《程序設計與數據結構》第六週學習總結

教材學習內容總結

  • 經過繼承來建立類,比從零開始編寫代碼來的更快、更容易也更經濟。
  • 繼承在父類與子類之間創建了is-a關係。
  • 子類的實例不依賴於父類的實例。
  • 繼承是單向的。
  • 變量或方法聲明爲保護可見性時,其封裝性不如聲明爲私有時嚴格,但比聲明爲公有時要好。UML類圖中,在保護成員加上#說明保護可見性。
  • 構造方法不能繼承。
  • super可用在一個類中,用來指向其父親。
  • 子類能夠重寫(重定義)繼承自父類的方法。
  • 派生於父類的子類還能夠是本身子類的父類,造成了類層次。
  • 公共特性應該放到類層次中儘量高的位置上。
  • 抽象類不能實例化,它提供的概念可由其餘類定義。在UML類圖中,抽象類和抽象方法的名稱用斜體表示。
  • 私有成員也被子類繼承,但不能經過名字直接引用。能夠間接引用。
  • 使用final修飾符能夠限制繼承。

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

  • 問題1:程序8.1,8.2,8.3三個存在父子類關係,但他們之間的關係不是特別清楚,經過書上的UML圖就能夠清晰明瞭的看出他們的繼承關係。

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

  • 問題1:沒有理解程序8.十、8.十一、8.12中的具體算法
  • 首先經過8.10調用8.12,8.12Pizza類繼承於8.11FoodItem。

代碼託管

(statistics.sh腳本的運行結果截圖)html

上週考試錯題總結

  • 錯題1 An array declared as an int[] can contain elements of different primitive types.(用int[]聲明的數組,元素類型能夠是全部基本類型)錯誤。
    已聲明具備特定類型的數組可能只包含該類型的元素。在這種狀況下,數組只能包含整數。
  • 錯題2 Suppose we wanted to process a text file called 「input.txt」 using the Scanner object. Which of the following lines of code correctly creates the necessary Scanner object?(假如咱們想用Scanner對象處理文件名爲「input.txt」的文本文件,下面哪行代碼正確的建立了Scanner對象)
    A .Scanner inputFile = new Scanner(「input.txt」);
    B .Scanner inputFile = new Scanner(new InputFile(「input.txt」);
    C .Scanner inputFile = new Scanner(new File(input.txt);
    D .Scanner inputFile = new Scanner(new InputFile(input.txt);
    E .Scanner inputFile = new Scanner(new File(「input.txt」);
    正確答案: E
    掃描儀構造函數須要將文件對象引用爲參數,因此選擇A、B和D是不正確的。文件對象的構造函數包含一個字符串,因此選擇C是不正確的。所以,選擇E是正確的。java

  • 錯題3 Which of the following statements best describes the flow of control in the main method of a Java program that has no conditionals or loops? (在沒有條件和循環語句的狀況下,對於Java程序中main方法的描述,下面哪一個選項最爲合適?)
    A .Program statements are all executed at the same time.(程序語句同時執行)
    B .Program statements are executed according to their priority, which is specified by the programmer.(程序語句根據程序員指定的優先級按優先級執行)
    C . Program statements are executed linearly, with earlier statements being executed first.(程序語句順序執行,前面的語句先執行)
    D .Program statements are executed linearly, with later statements being executed first.(程序語句順序執行,後面的語句先執行)
    E . Some program statements are executed at the same time, and others are executed in a linear manner. (有的程序語句同時執行,有的語句順序執行)
    正確答案: C
    java程序中的程序語句的執行線性當沒有條件語句或循環。這意味着在代碼中出現較早的語句在代碼後面出現的語句以前執行。git

  • 錯題4 輸入"cd"命令並按回車鍵後,將會出現什麼狀況?
    A .從當前目錄切換到根目錄
    B .屏幕顯示當前目錄
    C .從當前目錄切換爲上一級目錄
    D .從當前目錄切換到用戶主目錄
    正確答案: D
    cd 等價於cd ~,也就是cd /home/userXXX程序員

  • 錯題5 已知某用戶stud1,其用戶目錄爲/home/stud1。若是當前目錄爲/home,使用一下哪一個命令後能夠進入/home/stud1/test?
    A .cd home B .cd stud1/test C .cd /stud1/test D .cd test
    正確答案: B
    看錯了,很遺憾算法

點評模板:

點評過的同窗博客和代碼

其餘

這周的時間也比較少,因此內容也比較少,相對來講學習的進度仍是比較快的,學的也比以前順暢多了。

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 75/75 1/1 10/10
第二週 200/245 1/2 12/22
第三週 363/608 1/3 18/40
第四周 926/1534 2/5 30/70
第五週 1121/2655 1/6 20/90
第六週 328/2983 1/7 10/100

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

參考:軟件工程軟件的估計爲何這麼難軟件工程 估計方法數據結構

  • 計劃學習時間:20小時函數

  • 實際學習時間:10小時oop

  • 改進狀況:學習

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

參考資料

相關文章
相關標籤/搜索