2017-2018-2 20165228 實驗二《Java面向對象程序設計》實驗報告

2017-2018-2 20165228 實驗二《Java面向對象程序設計》實驗報告

相關知識點

三種代碼html

  • 僞代碼:註釋,與具體編程語言無關
  • 產品代碼:由僞代碼翻譯而來的具體編程語言語法相關的語句
  • 測試代碼:以測試用例來測試產品代碼中是否存在bug
    測試驅動開發(TDD)
    TDD的通常步驟以下:
  • 明確當前要完成的功能,記錄成一個測試列表
  • 快速完成編寫針對此功能的測試用例
  • 測試代碼編譯不經過(沒產品代碼呢)
  • 編寫產品代碼
  • 測試經過
  • 對代碼進行重構,並保證測試經過(重構下次實驗練習)
  • 循環完成全部功能的開發
    TDD的編碼節奏是:
  • 增長測試代碼,JUnit出現紅條
  • 修改產品代碼
  • JUnit出現綠條,任務完成
    S.O.L.I.D類設計原則:
  • SRP(Single Responsibility Principle,單一職責原則)
  • OCP(Open-Closed Principle,開放-封閉原則)
  • LSP(Liskov Substitusion Principle,Liskov替換原則)
  • ISP(Interface Segregation Principle,接口分離原則)
  • DIP(Dependency Inversion Principle,依賴倒置原則)java

    實驗內容

    (一)面向對象程序設計-1

    檢查點要求:
  • 參考 http://www.cnblogs.com/rocedu/p/6371315.html#SECUNITTEST 完成單元測試的學習
  • 提交最後三個JUnit測試用例(正常狀況,錯誤狀況,邊界狀況)都經過的截圖,截圖上要有畫圖加水印,輸入本身的學號
  • 本提交點考查JUnit會不會使用,測試用例至少要包含正常狀況,錯誤狀況,邊界狀況的測試git

    例子說明:咱們要在一個MyUtil類中解決一個百分制成績轉成「優、良、中、及格、不及格」五級製成績的功能。
    碼雲連接:
  • Exp2-1Program
  • Exp2-1ProgramTest編程

    相關截圖:

(二)面向對象程序設計-2

檢查點要求:

(三)面向對象程序設計-3

檢查點要求:
  • 參考實驗二 Java面向對象程序設計對設計模式示例進行擴充,體會OCP原則和DIP原則的應用,初步理解設計模式
  • 用本身的學號%6進行取餘運算,根據結果進行代碼擴充:
    0:讓系統支持Byte類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印
    1:讓系統支持Short類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印
    2:讓系統支持Boolean類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印
    3:讓系統支持Long類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印
    4:讓系統支持Float類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印
    5:讓系統支持Double類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印app

    碼雲連接:
  • Exp2-3Program編程語言

    相關截圖:

(四)面向對象程序設計-4

檢查點要求:
  • 提交:單元測試代碼和運行成功截圖及碼雲上代碼連接,截圖要加上學號水印
  • 任務:以TDD的方式開發一個複數類Complex,要求以下:
// 定義屬性並生成getter,setter
double RealPart;
double ImagePart;
// 定義構造函數
public Complex()
public Complex(double R,double I)
//Override Object
public boolean equals(Object obj)
public String toString()
// 定義公有方法:加減乘除
Complex ComplexAdd(Complex a)
Complex ComplexSub(Complex a)
Complex ComplexMulti(Complex a)
Complex ComplexDiv(Complex a)
碼雲連接:

(五)面向對象程序設計-5

檢查點要求:
  • 用StarUML對實驗二中的代碼進行建模,發類圖的截圖,加上學號水印
  • 類圖中只少兩個類
  • 類,繼承,接口實現,組合在UML中表達函數

    相關截圖:

實驗中遇到的問題

  • 問題1:在第四個提交點用測試用例來調試bug時,出現了下圖中的問題:

    當時計算的是11/25,結果應該爲0.44,然而計算的結果爲0.43999999999999995,這讓我很困惑
  • 解決方法:通過認真思考和相關問題查找後,也未能解決此問題。使用其餘測試用例調試都經過
  • 問題2:在第二個提交點寫的程序中,我發現
buffer.append('S');  //調用方法append,緩存char型
 buffer.append("tringBuffer");  //調用方法append,緩存String型

buffer.append("StringBuffer")

打印效果同樣,區別是什麼?

  • 解決方法:經過屢次嘗試,前者存儲的兩個數據存在於不一樣的兩個地址內存,只是顯示時拼接在一塊兒
相關文章
相關標籤/搜索