標籤:
課程:Java實驗 班級:201352 姓名:池彬寧 學號:20135212
成績: 指導教師:婁佳鵬 實驗日期:15.05.05
實驗密級: 預習程度: 實驗時間:
儀器組次: 必修/選修:選修 實驗序號:2
實驗名稱: Java物件導向程式設計
實驗目的與要求:
1. 初步掌握單元測試和TDD
2. 理解並掌握物件導向三要素:封裝、繼承、多態
3. 初步掌握UML建模
4. 熟悉S.O.L.I.D原則
5. 瞭解設計模式
實驗要求
1.沒有Linux基礎的同學建議先學習《Linux基礎入門(新版)》《Vim編輯器》 課程
2.完成實驗、撰寫實驗報告,實驗報告以部落格方式發表在部落格園,注意實驗報告重點是運行結果,遇到的問題(工具尋找,安裝,使用,程式的編輯,調試,運行等)、解決辦法(空洞的方法如“查網路”、“問同學”、“看書”等一律得0分)以及分析(從中可以得到什麼啟示,有什麼收穫,教訓等)。報告可以參考範飛龍老師的指導
3. 嚴禁抄襲,有該行為者實驗成績歸零,並附加其他懲罰措施。
實驗儀器:
實驗內容、步驟與體會(附紙):
(一)單元測試
(1) 三種代碼
編程是智力活動,不是打字,編程前要把幹什麼、如何幹想清楚才能把程式寫對、寫好。與目前不少同學一說編程就開啟編輯器寫代碼不同,我希望同學們養成一個習慣,當你們想用程式解決問題時,要會寫三種碼:
(四)練習
1、使用TDD的方式設計關實現複數類Complex。
(1)虛擬碼
複數類
複數=實數部+複數部i
複數相加=(實部相加)+(複數部相加)i
相減一樣道理;
列印:
虛部大於0:“實部”+“+”+“虛部”+“i”
虛部小於0:“實部”+“虛部”+“i”
虛部為0:“實部”
(2)產品代碼
//複數列印、相加、相減
public class Complex {
private int sh,xu;
Complex(){
this.sh=0;
this.xu=0;
}
Complex(int sh){
this.sh=sh;
this.xu=0;
}
Complex(int sh,int xu){
this.sh=sh;
this.xu=xu;
}
public void addFu(Complex p1,Complex p2){
System.out.println("這兩個複數的和為:");
this.sh=p1.sh+p2.sh;
this.xu=p1.xu+p2.xu;
print();
}
public void minusFu(Complex p1,Complex p2){
System.out.println("這兩個複數的差為:");
this.sh=p1.sh-p2.sh;
this.xu=p1.xu-p2.xu;
print();
}
public void outputFu(){
System.out.println("複數的值為:");
print();
}
public void print(){
if(this.xu>0){
System.out.println(this.sh+"+"+this.xu+"i");
}else if(this.xu<0){
System.out.println(this.sh+""+this.xu+"i");
}else{
System.out.println(this.sh);
}
}
}
(3)測試代碼
2、實驗報告中統計自己的PSP(Personal Software Process)時間
步驟 |
耗時 |
百分比 |
需求分析 |
25min |
18% |
設計 |
35min |
25% |
代碼實現 |
30min |
21% |
測試 |
30min |
21% |
分析總結 |
20min |
15% |
3.總結單元測試的好處
(1)使可以放心的修改測試用代碼而不用擔心會影響設計的測試代碼。
(2) 更容易在早期發現問題所在,問題不容易堆積,可以馬上解決。
遇到的問題:
在使用umbrello工具時候,建立類的Abstract無法顯示。
當輸出為字元時,不懂得如何進行TDD單元測試。
解決方案:
在建立類後忘記開啟類中的Display的選項,勾去public only選項。
明確輸出,對輸出進行判斷。
實驗二Java物件導向程式設計_20135129李暢宇