做業六

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

教材學習內容總結

  • SOLID原則:SRP單一職責原則,OCP開放封閉原則,LSP likov替代原則,ISP接口分離原則,DIP依賴致使原則。(仍未徹底理解掌握)
  • 繼承封裝多態的相關含義。
  • 如何經過接口實現多態,如何利用繼承實現多態(實際操做不能徹底本身打出)後綁定相關概念

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

  • 問題1: 對四種輸出方法沒法分離
  • 問題1解決方案:經過仔細閱讀理解老師所給代碼爲兩種輸入,其下又各有兩種shuc
  • 問題2:對字符流,字節流理解存在困難
  • 問題2解決方案:經過交流詢問和查閱課本找到相關概念區別。:字符流使用了緩衝區,而字節流沒有使用緩衝區。在字節流中輸出數據主要是使用OutputStream完成,輸入使的是InputStream,在字符流中輸出主要是使用Writer類完成,輸入流主要使用Reader類完成。(這四個都是抽象類)。

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

  • 問題1:try-catch不理解如何使用
  • 問題1解決方案:查閱後得知try與catch的不一樣做用。
  • 問題2: 在java中輸入字符遇到吃回車問題
  • 問題2解決方案:百度後得知經過將nextline改成next能夠解決,nextline常發生吃回車問題
  • 問題3:append的做用不知.
  • 問題3解決方案:write每次寫入前都會把文件原有內容格式化,append只是單純的添加,不對原內容作改動,append會把文件內指針指向結尾。

[https://gitee.com/besti1823/20182302shiyanyi00/tree/master/20191015]

上週考試錯題總結

  • Polymorphism is achieved by
    A .overloading
    B .overriding
    C .embedding
    D .abstraction
    E .encapsulation
  • 重載只是爲具備不一樣參數列表的方法提供了替代方法。重寫提供了多態性,由於根據當前被引用的對象調用相應的方法。嵌入是類中類的封閉。抽象與多態性無關。使用可見性修飾符(public、private、protected)實現封裝。
  • Which statement is completely true?
    A .Java upcasts automatically, but you must explicitly downcast
    B .Java downcasts automatically, but you must explicitly upcast
    C .Java expects the user to explicitly upcast and downcast
    D .Java will both upcast and downcast automatically
    E .The rules for upcasting and downcasting depend upon whether classes are declared public, protected, or private
  • upcasting是徹底安全的,它是java支持的單一繼承結構的產物。相比之下,向下轉換必須由程序員顯式地完成。Java只在一個方向上自動進行強制轉換。上下投射的規則不依賴於使用中的可見性修改器。
  • What is the efficiency of binary search?
    A .n^2
    B .n
    C .log2 n
    D .n/2
    E .none of the above
  • 使用每一個比較,二進制搜索消除了剩下的數據的大約一半。此過程將繼續,直到找到所需的元素或消除全部可能的數據。因爲有n個數據元素,在數據量小於1個元素以前,能夠將數據減半的次數爲log2n。
  • A polymorphic reference can refer to different types of objects over time.隨着時間的推移,多態引用能夠引用不一樣類型的對象。這就是多態性的意義所在:後期綁定。這意味着在程序執行時,相同的名稱將與不一樣的語義相關聯。
  • A reference variable can refer to any object created from any class related to it by inheritance.這是一種用來完成多態引用的技術,它的精確解釋將在執行期間發生變化,這取決於遇到變量時引用的精確對象。
  • An interface reference can refer to any object of any class that implements the interface.
  • 接口引用能夠引用實現接口的任何類的任何對象。這是使用接口名稱聲明引用變量的多態函數之一。
  • A method's parameter can be polymorphic, giving the method flexible control of its arguments.
  • 方法的參數能夠是多態的,使方法靈活地控制其參數。爲了實現這一點,僅使用接口名或基類名來聲明變量。而後參數是多態的,在執行期間引用類的正確實例,在執行期間訪問正確的語義。
  • 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.
  • 派生類能夠從新定義父類的任何實例數據或方法。父類的版本如今是隱藏的,可是能夠經過使用super來訪問,如在super.x中同樣。
  • Although classes can be inherited from one-another, even Abstract classes, interfaces cannot be inherited.
    A .true
    B .false
  • 接口具備普通類所具備的全部繼承屬性。所以,您能夠建立接口繼承層次結構,就像建立類繼承層次結構同樣。可是,您不能作的是實例化一個必須實現的接口。
  • A Java program can handle an exception in several different ways. Which of the following is not a way that a Java program could handle an exception?
    A .ignore the exception
    B .handle the exception where it arose using try and catch statements
    C .propagate the exception to another method where it can be handled
    D .throw the exception to a pre-defined Exception class to be handled
    E .all of the above are ways that a Java program could handle an exception
  • 若是代碼包含在try語句中並實現了相應的catch語句,則拋出的異常要麼被當前代碼捕獲,要麼被傳播到調用致使異常的方法並在相應的catch語句中捕獲的方法,或者它繼續經過方法傳播,傳播順序與調用這些方法的順序相反。可是,一旦達到主方法,此過程就會中止。若是沒有在那裏捕獲,異常將致使程序終止(這將是答案A,異常被忽略)。可是,不會向異常類拋出異常。html

    結對及互評

點評:

  • 博客中值得學習的或問題:
    • 問題:排版能力仍需提升
    • 錯誤總結缺乏,作題時缺乏仔細思考
  • 代碼中值得學習的或問題:
    • 本週代碼總量較上多
    • 代碼編寫時規範性有待提升
  • 基於評分標準,我給本博客打分:13分。得分狀況以下:正確使用Markdown語法(加1分)模板中的要素齊全(加1分)教材學習中的問題和解決過程(加2分)代碼調試中的問題和解決過程(加2分)本週有效代碼超過300分行(加2分)感想,體會不假大空(加1分)進度條中記錄學習時間與改進狀況(加1分)結對學習狀況真實可信(加1分)有動手寫新代碼(加1分)點評認真,能指出博客和代碼中的問題的(加1分)

點評過的同窗博客和代碼

  • 本週結對學習狀況
  • 結對學習內容
    - 繼承封裝多態的案例使用
    - 接口實現多態
    - 服務器與客戶端的鏈接
  • 上週博客互評狀況

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

對封裝分類包裝具體概念有待複習,目前作題有困難,應該提早預習,抽時間複習。java

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 6000行 25篇 300小時
第一週 143/143 2/2 7/7 學會對虛擬機進行基礎設置,學會git程序簡單使用
第二週 388/531 3/5 10 /17 學會部分基礎編碼,掌握循環格式話輸出等內容
第四周 807/1338 1/6 17/34 學會運用IDEA編寫和測試代碼
第五週 1289/2096 2/8 17/51 學會運用IDEA編寫和測試代碼
第六週 1005/3101 2/10 19/70 學會繼承封裝多態

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

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

  • 計劃學習時間:20小時安全

  • 實際學習時間:18 小時服務器

  • 改進狀況:提升了代碼總量,對所留做業進行相應知識盡心必定學習,對端口仍不熟卻有必定了解。數據結構

參考資料

相關文章
相關標籤/搜索