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

1、面向對象程序設計-1

一、檢查點要求

參考 http://www.cnblogs.com/rocedu/p/6371315.html#SECUNITTESThtml

參考 http://www.cnblogs.com/rocedu/p/6736847.htmljava

提交最後三個測試用例都經過的截圖,截圖上要有畫圖加水印,輸入本身的學號。git

二、截圖

三、相關代碼的碼雲連接

MyUtil.java設計模式

MyUtilTest.java緩存

2、面向對象程序設計-2

一、檢查點要求

參考 積極主動敲代碼,使用JUnit學習Java (http://www.cnblogs.com/rocedu/p/4837092.html)app

參考http://www.cnblogs.com/rocedu/p/6736847.htmlide

以 TDD的方式研究學習StringBuffer,提交你的單元測試用例和測試經過的截圖,截圖要加上學號水印。函數

二、截圖

三、相關代碼的碼雲連接

StringBufferDemo.java單元測試

StringBufferDemoTest.java學習

3、面向對象程序設計-3

一、檢查點要求

參考http://www.cnblogs.com/rocedu/p/6736847.html

對設計模式示例進行擴充,體會OCP原則和DIP原則的應用,初步理解設計模式

用本身的學號%6進行取餘運算,根據結果進行代碼擴充:

0: 讓系統支持Byte類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印

1: 讓系統支持Short類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印

2: 讓系統支持Boolean類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印

3: 讓系統支持Long類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印

4: 讓系統支持Float類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印

5: 讓系統支持Double類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印

二、截圖

我作的是:系統支持Short類,截圖如圖所示;

三、相關代碼的碼雲連接

MyDoc.java

4、面向對象程序設計-4

一、檢查點要求

提交:單元測試代碼和運行成功截圖及碼雲上代碼連接,截圖要加上學號水印

參考http://www.cnblogs.com/rocedu/p/6736847.html

任務:以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)

二、截圖

三、相關代碼的碼雲連接

Complex.java

ComplexTest.java

5、面向對象程序設計-5

一、檢查點要求

使用WhiteStarUML對實驗二中的代碼進行建模,發類圖的截圖,加上學號水印。
參考http://www.cnblogs.com/rocedu/p/6736847.html

類圖中只少兩個類。

二、截圖

6、實驗PSP


遇到的問題

一、關於StringBuffer()
StringBuffer a = new StringBuffer("StringBuffer");
StringBuffer a = new StringBuffer();
a.append("StringBuffer");

在實驗中,我發現這兩個寫法是有區別的。前者是將"StringBuffer"寫入a以後再分配16個字符長度的緩存;後者直接在緩存區裏面寫入(當緩衝區寫完了就會繼續分配)。

二者最直接的體現就是a.capacity()的數值不一樣,前者爲28,後者只有16(恰好比前面多出16個字符長,即緩存區的長度)。

二、關於老師的博客

圖中彷佛有一個錯誤,運行結果應該是

16
buffer = StringBuffer
12

或者將第5行改成buffer.append("tringBuffer12345");運行結果應該是

34
buffer = StringBuffer12345
17
三、關於複數除法運算

參考連接:
複數類及各類操做(Java)

裏面對複數除法運算的處理值得學習,即先求一個數的倒,再轉化爲乘法運算。

相關文章
相關標籤/搜索