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

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

教材學習內容總結

  • 異常
    • 學會了使用try-catch來實現未捕獲的異常的處理。可使得異常被捕獲進而不致使程序出現錯誤退出。使用try寫入可能產生異常的語句,使用catch來編寫在捕獲異常後繼續執行的代碼(能夠爲空)。
    • "未捕獲的異常"指在編譯過程當中不會被編譯軟件顯示異常可是在運行時會出現異常致使程序直接退出,例如:「ArithmeticException」、"IndexOutOfBoundException"等。
    • 可使用finally子句來使得一些命令在try-catch語句中始終被執行。
    • 咱們能夠在一些異常類的基礎上編寫本身的異常類----自定義異常。throwsthrow必須同時出現!
  • 遞歸
    • 遞歸是指一個方法調用本身。
    • 迷宮問題和漢諾塔問題是遞歸方法體現的兩個例子。
    • 使用遞歸能夠實現與循環類似的一些功能,例如PP12.1就是一個鮮明的例子。

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

  • 本週教材學習問題很少。
  • 問題1:最初對未捕獲的異常的命名方式不太理解,它爲何要被成爲未捕獲的異常呢?該命名的方式是如何命名的?
  • 問題1解決方案:範雯琪給我講了一下她的理解:所謂未捕獲異常多是指編譯工具沒有發現的異常,只有在運行時纔會拋出錯誤。我感受到了豁然貫通。
  • 問題2:關於無窮遞歸,無窮遞歸如何實現?它會致使什麼樣的錯誤?
  • 問題2解決方案:看到了文章《可怕的無窮遞歸》有了一些理解,在文章中他給出了一些例子,而且寫出了最容易的拋出錯誤"StackOverflowException".

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

  • 問題1:在作PP11.1和PP11.2時最初並無實現「直到輸入「DONE」爲止」這一條件,致使後期加如這一條件時遇到了一些困難,由於最早是使用的while循環來實現這一目標。
  • 問題1解決方案:忽然想到break這一個命令,這個命令好像能夠直接退出循環。因此就編寫了如下代碼
if (value.equals("DONE"))
            break;
  • 問題2:在作PP12.1時,並不知道用遞歸方法如何實現迴文的判斷。
  • 問題2解決方案:上網查詢了相關的代碼,借鑑了文章《使用遞歸實現迴文判斷》而且在遞歸方法後面加上了本身的理解。如圖

代碼託管


忽然發現IDEA竟然能統計有效代碼,厲害厲害!html

上週考試錯題總結

  • 錯題1及緣由:對棧的記憶有些許忘記,忘記了棧的調用方法是什麼樣的。 java

  • 理解狀況:棧的調用遵循「先進後出,後進先出」的原則,因此說處理的順序是相反的,並非正向。
  • 錯題2及緣由:對catch爲空和沒有catch理解出現錯誤,覺得二者等同。git

  • 理解狀況:二者不相等,一個try必需要有至少一個catch與其對應,可是catch的內容能夠爲空。
  • 錯題3及緣由:對BufferedReader的使用不理解。數據結構

  • 理解狀況:瀏覽博客《關於java中BufferedReader的read()及readLine()方法的使用心得》理解了相關用法工具

結對及互評

  • 博客中值得學習的或問題:
    • 範雯琪同窗的博客加上了目錄,看起來很厲害耶。而後我也去加上啦。
  • 代碼中值得學習的或問題:
    • 本週暫無。

點評過的同窗博客和代碼

  • 本週結對學習狀況
    • 20172303學習

    • 結對學習內容
      • 教會範雯琪同窗自編寫異常,使她對PP項目的問題豁然貫通
      • 在範雯琪同窗編寫PP項目遇到困難時我積極伸出了援手,使得她對本章她以爲一些難點豁然貫通!
      • 她在編寫PP11.1時在沒有使用while循環的狀況下竟然用了break還問我爲何break紅了......這我的有點笨
      • 她在編寫PP12.1時向我詢問了一下代碼的具體寫法,在對最後遞歸方法實現的時候不理解,給她解釋了一下爲何須要寫上一個字符,兩個字符和其餘,而不是一個字符和其餘。

其餘

  • 感悟:本週那個王老師佈置IO異常處理做業有些難度,雖然本身沒有知足全部要求,可是本身仍是盡本身所能知足相關基礎要求。
  • 思考:下週就要對Android的相關知識進行學習啦,比較激動!

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 242/242 1/4 13/13 增長了對Java的興趣
第二週 297/539 1/5 15/28 發現目標並無想象中那麼難
第三週 315/854 2/7 18/46 忽然發覺JAVA的難度不小
第四周 1269/2123 1/8 50/96 Java難到哭,可是有信心擊敗他!
第五週 737/2860 1/9 30/126 難度的減少激發了學習動力
第六週 542/3402 2/11 20/146 不能說難度變小!!!又難了T T
第七週 956/4357 1/12 35/181 平平淡淡纔是真
第八週 2448/6805 3/15 80/261 四則運算花的時間太多了,還好書上例題的代碼老師給了
第九周 1284/8089 2/17 70/331 IO異常的處理是真的有點難度
  • 計劃學習時間:50小時.net

  • 實際學習時間:70小時設計

  • 改進狀況:commit的要求繼續實施,根據學長對上週博客的建議修改了上週博客,並在本週博客中儘可能避免相似問題發生。調試

參考資料

相關文章
相關標籤/搜索