201521123018 《Java程序設計》第10周學習總結

1. 本章學習總結

你對於本章知識的學習總結
java

2. 書面做業

1、inally

題目4-2

1.1 截圖你的提交結果(出現學號)
多線程

1.2 4-2中finally中捕獲異常須要注意什麼?
答:
4-2中finally中捕獲異常須要注意resource是不是空指針,及在關閉resource可能產生的其它異常,try-catch所捕獲的異常爲Exception異常,這樣能夠捕獲全部可能的異常(包括NullPointerException及其Exception子類異常)eclipse

2、用異常改進ArrayIntegerStack

題目4-3

2.1 截圖你的提交結果(出現學號)
函數

2.2 實驗總結
答:
主要的功能函數public Integer push(Integer item);public Integer pop();public Integer peek();與以前PTA實驗的所寫代碼一致,主要是對於異常的拋出。例如若是棧滿,拋出FullStackExceptionpublic Integer push(Integer item) throws FullStackException,並斷定if(this.size()>=arrStack.length),則FullStackException e= new FullStackException();throw e;拋出異常,以後入棧的功能實現的代碼不變,其他函數也是相似改進,在方法名後面+throws+異常類型,在方法實現中判斷棧的狀況拋出對應異常,實現方法的代碼不變便可學習

3、自定義異常

題目5-4

3.1 截圖你的提交結果(出現學號)
this

3.2 自定義異常有哪幾個關鍵點?
答:
創建兩個異常類IllegalScoreExceptionIllegalNameException繼承exception類,接着對不合理的數據斷定拋出異常。例如 若是姓名首字母爲數字則拋出IllegalNameExceptionpublic void setName(String name) throws IllegalNameException,斷定name.charAt(0)>='0'&&name.charAt(0)<='9',拋出throw new IllegalNameException(告訴調用者錯誤的信息),對不合理分數拋出異常,與之相似,改動的主要是異常的類型IllegalScoreException和斷定的條件score1<0 || score1>100線程

4、讀取文件並組裝對象

實驗任務書中中的題目3:讀取文件並組裝對象

給出關鍵代碼(需出現你的學號)3d

5、學會使用Eclipse進行調試

觀看相關調試視頻

5.1 簡述使用Eclipse進行調試須要幾步?
答:指針

  • 設置斷點
  • 打開Debug,進入Debug界面
  • 使用快捷鍵F5 F6 F7進行所要進行的調試操做,觀看右上界面數值的變化(數值界面通常在右上)
  • 找出問題,去掉斷點,返回JAVA界面

5.2 調試時F5, F6, F7快鍵鍵各有什麼不一樣?什麼狀況該使用哪一個快捷鍵?
答:
F5(step into):進入當前行的方法內部,一步一步執行;F6(step over,跳過):執行當前行,但不進入執行細節;F7 (step return,跳出):返回上一步執行的方法(相對應F5)調試

5.3 除了Eclipse的調試器,你還使用什麼方法調試程序?
答:
本身在代碼設置一些屬性的輸出來看代碼有無出錯或是有無達到本身所要的結果,若在某處不符合,則在此處進行代碼改寫找出錯誤,方法比較累

5.3 選作:實驗任務書中的題目5:使用Eclipse進行調試中的選作

6、題集多線程

6.1 程序填空3-一、3-2。(截圖提交結果,出現你的學號)

6.2 函數4-1(Thread)、4-2(Runnable)(截圖提交結果,出現你的學號)

6.3 函數4-3(Runnable與匿名內部類)(截圖提交結果,出現你的學號),並使用Labmda表達式改寫。

6.4 實驗總結
答:
建立線程不推薦繼承Thread類,採起實現Runnable接口,建立實現Runnable接口的對象,再將此對象做爲Thread構造函數的參數,建立Thread的實例;關閉線程,能夠調用Thread類的方法中的yield()方法,能夠暫停當前線程(即關閉線程,放棄CPU);使用匿名內部類寫Thread類,只要的格式是new Thread(new Runnable(){...}),故在{}中編寫run()方法,輸出主線程名,線程t1的線程名,線程t1所實現的全部接口,與以前匿名內部類的編寫沒太大區別,Labmda表達式改寫,主要有三部分,參數,箭頭和方法體(實現的功能),此次的改寫主要是參數爲無,只要()便可,箭頭和方法體的編寫與以前Labmda表達編寫相似,無太大卻別

7、源代碼閱讀:多線程程序BounceThread

7.1 哪一個類是支持多線程的類,它實現了什麼接口。這個類作了些什麼?
答:
BounceFrame類是支持多線程的,實現BallRunnable接口,BounceFrame類先是建立JFrame窗口,而且JFrame窗口中設有兩個按鈕,strat和Close來觸發不一樣的事件(strat是建立一個新的球移動,close是關閉線程),線程實現球在JFrame窗口內移動,並在終點處中止

7.2 Ball.java這個程序只作了兩件事,這兩件事分別是什麼?
答:
一是球的移動,即若是球擊中一個邊緣,將球移動到下一個位置,反向方向;二是獲取當前位置的球的形狀。

7.3 BallComponent也只作了兩件事,這兩件事分別是什麼?
答:
一是球的繪畫,二是在面板上添加一個球。

7.4 BounceThread中,何時啓動了新線程?
答:
addButton(buttonPanel, "Start", new ActionListener()),按下strat按鈕,觸發新的事件,調用函數addBall(),在addBall()中啓動新的線程

7.5 這個程序是如何實現?一個大體的執行流程是什麼?
答:

  • 創建JFrame窗口
  • 添加strat和close按鈕
  • 點擊start按鈕,觸發事件,調用函數addBall()
  • 在函數中創建Runnable對象,啓動線程
  • close退出線程(退出系統)

3. PTA實驗總結及碼雲上代碼提交記錄

3.1本週Commit歷史截圖

在碼雲的項目中,依次選擇「統計-Commits歷史-設置時間段」,而後搜索並截圖,以下圖所示

相關文章
相關標籤/搜索