20172308 實驗二《Java面向對象程序設計 》實驗報告

20172308 2017-2018-2 《程序設計與數據結構》實驗2報告

課程:《程序設計與數據結構》
班級: 1723
姓名: 周亞傑
學號:20172308
實驗教師:王志強
實驗日期:2018年4月17日
必修/選修: 必修html

1.實驗內容

  • 初步掌握單元測試和TDD
  • 理解並掌握面向對象三要素:封裝、繼承、多態
  • 初步掌握UML建模
  • 熟悉S.O.L.I.D原則
  • 瞭解設計模式
  • 完成藍墨雲上 (1)-(5)實驗。

2. 實驗過程及結果

  • 實驗1:認識編程中三種碼:僞代碼、產品代碼、測試代碼;對編寫的類進行測試,這個實驗實驗中咱們共完成了三種測試:測試正常、測試異常、測試邊界
    實驗結果:

    實驗1代碼連接java

  • 實驗2:以 TDD的方式研究學習StringBuffer:學習使用StringBuffer類,用API查閱StringBuffer類方法,並測試(
    實驗2代碼連接
    實驗結果:
    git

  • 實驗3:對設計模式示例進行擴充,體會OCP原則和DIP原則的應用,初步理解設計模式,用本身的學號%6進行取餘,讓系統支持Boolean類,並在MyDoc類中添加測試代碼代表添加正確:(實驗3代碼連接
    實驗結果:編程

  • 實驗4:以TDD的方式開發一個複數類Complex:主要難點體如今複數類的編寫上(實驗4代碼連接
    實驗結果:
    設計模式

  • 實驗5:用UML代碼進行建模:主要難點體如今畫圖軟件的使用上,不太好上手。經過百度和屢次嘗試,畫圖如圖:
    數據結構

3. 實驗過程當中遇到的問題和解決過程

  • 問題1:在作前兩個實驗的時候,最大的阻撓是在TDD測試的時候,彈出來一個紅色框框,如圖:

    而後手賤點開了,後來致使全部的程序中有漢字的都不能運行,出現了亂碼。單元測試

  • 問題1解決過程:這個問題的出現徹底是個意外。後來問了學長,老師,沒解決。學長讓我從新建個項目,而後我就發現了問題所在,就是如圖所示:

    後來老師也找到了緣由(。。。我是蒙的),字符集選錯了。。學習

  • 問題2:在TDD測試的時候,發現import一個類以後,其中的方法仍是不能用,如圖:
    測試

  • 問題2解決方案:很明顯是個人import寫錯了,應該是直接寫包名及其下的類,即import experiment.MyUtil;。這是個很小的問題,但問題是以往所寫的要不就是把類都放在一個包下面不用import的,要不就是在包名前面寫了Java的,而後自動認爲import的時候都得寫java,若是不是用的IDEA能夠直接生成聲明,在Linux裏寫的話,我可能會瘋掉。設計

  • 問題3:還有一個很神奇的現象,如圖:

  • 問題3解決方案:固然一眼就能看出來我把package的名字寫錯了,沒有具體寫到程序所在的文件夾名,因而就出現了上面的狀況:自動又給我生成了一個test文件夾,而後把個人代碼程序放在了TTD測試代碼下面了。這個問題雖然是一個簡單的錯誤產生的,可是若是直接看到這種狀況的話,我可能一會兒想不到解決方法,因此在這裏記錄一下。修正後的代碼如圖:

  • 問題4:在編寫Complex類的時候,出現瞭如圖錯誤:

    能夠考到assertEquals,自動被畫上了橫線,很顯然是括號裏的內容寫錯了

  • 問題4解決方案:一開始在編寫類的時候,是考慮到寫兩個方法,分別獲得數的實部和虛部,而後分別計算,再經過toString把結果加上「i」,但存在一個問題就是,由於toString把最後獲得的結果變成了字符串類型,導致assertEquals的時候,不能正確測試。後來換了一種思路,代碼如圖:

    直接調用寫好的add方法,將兩個數進行計算,但因爲對象a和b都是Complex類聲明的,因此須要用String.valueOf把他們的結果變成String類,再把預測結果寫成String類,就能夠經過測試了。

參考資料

相關文章
相關標籤/搜索