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

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

教材學習內容總結

  • 多態引用再不一樣時候能夠指向不一樣類型的對象
  • 經過繼承實現多態
  • 接口能夠多繼承,實現多態
  • 異常不捕獲會讓程序終止
  • try-catch語句能夠捕獲異常,讓程序繼續
  • finally子句不管如何都要執行
  • 異常傳播,類的層次
  • I/O異常

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

  • 問題1:try-catch語句
  • 問題1解決方案:若是代碼沒有產生異常,將繼續執行try語句後的語句塊,全部catch子句後的語句。若是有異常,則控制馬上轉移到相應的catch子句處理異常。
  • 問題2:可檢測異常與不可檢測異常的差別
  • 問題2解決方案:可檢測異常必須由方法捕獲,或者必須在可能拋出或傳遞異常方法的throws子句中列出來。throws子句用在方法頭。throw子句用在方法中。java中惟一的不可檢測異常是RuntimeException類的對象或該類的後代類對象。

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

  • 問題1:試圖捕獲字符串越界的異常,可是沒有出現
  • 問題1解決方案:字符串有自動擴充的功能,容量爲2X+2

代碼託管

上週考試錯題總結

  • 1.What does the following code do? Assume list is an array of int values, temp is some previously initialized int value, and c is an int initialized to 0.

for (j=0; j < list.length; j++)html

if (list[j] < temp) c++;java

A . It finds the smallest value and stores it in temp
B . It finds the largest value and stores it in temp
C . It counts the number of elements equal to the smallest value in list
D . It counts the number of elements in list that are less than temp
E . It sorts the values in list to be in ascending order
答案:D。if(list[j]<temp)c++;語句將list中的每一個元素與temp進行比較,而且僅當元素小於temp時纔將一個元素添加到c中,所以它計算list中小於temp的元素數,並將結果存儲在c中。>c++

  • 2.The type of the reference, not the type of the object, is use to determine which version of a method is invoked in a polymorphic reference.

A . true
B . false
答案:B。決定調用哪一個方法的是對象的類型,而不是引用的類型。git

  • 3.A class reference can refer to any object of any class that descends from the class.

A . true
B . false
答案:A。這是使用類名聲明引用變量的多態函數之一。程序員

  • 4.One of the advantages of linear search is that it does not require its data to be sorted.

A . true
B . false
答案:A。大多數其餘搜索技術都要求對其數據進行排序,以便得到更高的效率(速度)。可是,線性搜索沒有這樣的要求。結果是,線性搜索可能比人們指望的要慢,但它老是有效的,並且人們在搜索數據以前不須要支付排序數據的(昂貴的)代價。算法

  • 5.Binary search can be used on unsorted data it will just perform more slowly.

A . true
B . false
答案:B。只有對數據進行排序時,二進制搜索才起做用。二進制搜索算法經過假設每對數據元素之間有嚴格的關係來進行,不管是升序仍是降序。若是沒有這個順序,二進制搜索將沒法正常工做。數據結構

  • 6.An exception can produce a "call stack trace" which lists

A . the active methods in the order that they were invoked
B . the active methods in the opposite order that they were invoked
C . the values of all instance data of the object where the exception was raised
D . the values of all instance data of the object where the exception was raised and all local variables and parameters of the method where the exception was raised
E . the name of the exception thrown
答案:B。調用堆棧跟蹤提供存儲在運行時堆棧上的方法的名稱。方法名從堆棧中移除的順序與它們的放置順序相反,也就是說,最先的方法首先放置在堆棧中,下一個方法第二個放置在堆棧中,以此類推,以便最近調用的方法是堆棧中的最後一個項,所以它是第一個移除的項。堆棧跟蹤而後按調用它們的相反順序顯示全部活動方法(最新的先顯示)。less

  • 7.NullPointerException and ArithmeticException are both derived from which class?

A . Error
B . Exception
C . RuntimeException
D . IllegalAccessException
E . CheckedException
答案:C。這兩個異常都是RuntimeException的子級,RuntimeException自己是Exception的子級。error是一個可丟棄的對象,它不一樣於exception,而illegalaccessexception和checkedeexception是exception的子級,但不是runtimeexception。函數

  • 8.In order to have some code throw an exception, you would use which of the following reserved words?

A . throw
B . throws
C . try
D . Throwable
E . goto
答案:A。保留字throw用於在檢測到異常時引起異常,如:if(score<0)throw new illegalTestScoreException(「input score」+score+「is negative」);>學習

  • 9.PrintWriter is a better output stream class that PrintStream because PrintWriter

A . has both print and println methods and PrintStream only has print
B . can output both byte and character streams and PrintStream can only output byte streams
C . has error checking mechanisms as part of the class and PrintStream does not
D . will not throw checked exceptions and PrintStream will
E . all of the above
答案:C。printwriter類是writer類,而printstream類是stream類。主要的區別在於,printwriter是專門爲文件設計的,所以有錯誤檢查機制,這些機制不是printstream的一部分。

  • 10.The difference between a checked and an unchecked exception is

A . checked exceptions need not be listed in a throws clause
B . unchecked exceptions must be listed in a throws clause
C . neither kind of exception follows the rules of exception propagation
D . an unchecked exception requires no throws clause
E . a checked exception always must be caught by a try block; an unchecked exception does not
答案:D。必須捕獲選中的異常,或者必須將其列在throws子句中。未檢查的異常不須要throws子句。這兩種異常都遵循異常傳播的規則。

  • 11.If an exception is thrown and is not caught anywhere in the program, then the program terminates.

A . true
B . false
答案:A。異常是敏感的事件,或者是在沒有異常處理程序的狀況下沒法正常處理的運行時狀況。異常由關聯的異常處理程序捕獲。若是拋出異常但未處理,則程序必須終止。

  • 12.A try statement must have at least one catch statement, but could have many catch statements, and may or may not have a finally clause.

A . true
B . false
答案:A。全部try語句必須至少有一個catch語句,不然沒有理由使用try語句。對於可能引起的每種類型的異常,均可以有一個catch語句。程序員能夠根據須要指定任意多個catch語句。此外,try語句可能有finally子句,但不須要。

結對及互評

  • 博客中值得學習的或問題:
    • 學習深入,本身有方法
    • 對課本,代碼進行多方位的思考
  • 代碼中值得學習的或問題:
  • 基於評分標準,我給本博客打分:11分。得分狀況以下:
    • 正確使用Markdown語法加1分
    • 模板中的要素齊全加1分
    • 教材學習中的問題和解決過程, 兩個問題加2分
    • 代碼調試中的問題和解決過程, 一個問題加1分
    • 本週有效代碼超過300分行的加2分
    • 排版精美的加1分
    • 代碼Commit Message規範的加1分
    • 有動手寫新代碼的加1分
    • 結對學習狀況真實可信的加1分

點評過的同窗博客和代碼

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 10000行 30篇 400小時
第一週 138/138 2/2 25/25 學會寫和上傳代碼,會編簡單的輸出程序
第二週 88/226 1/3 30/55 起文件名不能太長
第三週 898/1124 2/5 35/90 Java類裏面的方法和C語言的函數很像
第四周 632/1756 2/7 30/120 能夠用繼承extends簡化重複的代碼
第五週 770/2526 2/9 45/165 --amend -m能夠重命名沒push的文件
第六週 3947/6473 2/11 40/205 接口類的功能要分散,利用多繼承完成功能

參考資料

相關文章
相關標籤/搜索