Java第二次实验报告——Java面向对象程序设计
??????????????????????????????????????????????????????????????????????????? 北京電子科技學院(BESTI)
實 ? ?驗 ? ?報 ? ?告
課程名稱:java程序設計實驗 ? ? ?班級:1352 ? ? ? ? 姓名:洪韶武 ? ? ?學號:20135219
成績: ? ? ? ? ? ? ? ? ? ? ? ? ? 指導教師:婁嘉鵬 ? ? ? ? ? ? ? ? ? ?實驗日期:2015.05.07
實驗密級: ? ? ? ? ? ? ? ? ? ?預習程度: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 實驗時間: ? ? ? ? ? ? ? ??
儀器組次: ? ? ? ? ? ? ? ? ? ?必修/選修:選修 ? ? ? ? ? ? ? ? ? ? ? 實驗序號:02
實驗名稱:?????????????????????????????????Java面向對象程序設計???????????????????????????????????????????????????????????????????????????
實驗目的與要求:
目的:???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?
1. 初步掌握單元測試和TDD???????????????????????????????????????????????????????????????????????????????????????????????????????????????????
2. 理解并掌握面向對象三要素:封裝、繼承、多態???????????????????????????????????????????????????????????????????????????????????????
3. 初步掌握UML建模???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
4. 熟悉S.O.L.I.D原則??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
5. 了解設計模式??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
要求:??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
1.完成實驗、撰寫實驗報告,以博客方式發表在博客園???????????????????????????????????????????????????????????????????????????????????
2.實驗報告重點是運行結果、遇到的問題(工具查找,安裝,使用,程序的編輯,調試,運行等)、解決辦法?????????????????
3. 嚴禁抄襲,有該行為者實驗成績歸零,并附加其他懲罰措施????????????????????????????????????????????????????????????????????????
實驗儀器:
| 名稱 | 型號 | 數量 |
| PC | MAC | 1 |
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?
?
實驗步驟:
(一)單元測試
1.三種代碼
???偽代碼:以簡潔的自然語言表明設計步驟;
???產品代碼:用以實現特定功能的程序或機器語言;
?? 測試代碼:用以對產品代碼進行測試的代碼
應用舉例:學生考試等級劃分程序產品代碼
產品代碼:
?
測試代碼:
測試一:選取某一合法輸入值進行測試
測試二:測試各個等級數值
測試三:測試邊界情況、測試非法數值輸入
?
2.TDD(Test Driven Devlopment, 測試驅動開發)
以程序測試推動程序開發即先寫測試代碼,然后再寫產品代碼的開發方式
java中有單元測試工具JUnit來輔助進行TDD,具體過程見下:
java——〉File——〉New——〉Java Project——〉TDDDemo——〉右鍵單擊TDDDemo——〉New——〉Source Folder——〉test——右鍵單擊test——〉New——〉JUnit Test Case——〉MyUtilTest——〉其superclass改為junit.framework.TestCase
?
在src中新建MyUtil類并輸入產品代碼,然后運行測試代碼(Run as——> JUnit Test)
運行結果如下(分別為修改產品代碼前后測試結果):
?
(二)面向對象三要素
封裝、繼承與多態
封裝:將與某一將數據與相關行為包裝在一起以實現信息就隱藏,核心內容是模塊化和信息隱藏,與此相伴的是接口的使用
封裝示例
利用umbrello軟件,可以將以上思路進行具象化表示
?繼承:以封裝為基礎,一個類的定義可以基于另外一個已經存在的類,即子類基于父類,從而實現父類代碼的重用。其更為廣泛而重要的作用是實現多態,
繼承示例:
Dog類和Cat類都有Color屬性和相應的setter和getter方法,可以通過繼承使其精煉化,把Color屬性和相應的setter和getter方法放到父類Animal中
??
(三)設計模式初步
(1)S.O.L.I.D原則
SRP(Single Responsibility Principle,單一職責原則):對象提供單一職責的高度封裝,對象的改變僅僅依賴于單一職責的改變
OCP(Open-Closed Principle,開放-封閉原則):即對擴充開放(功能可增加),對修改封閉(源代碼不可改動)
OCP實現手段:(1)抽象和繼承,(2)面向接口編程
LSP(Liskov Substitusion Principle,Liskov替換原則):子類必須可以被其基類所代,父類型對象可以被子類型對象所取代
ISP(Interface Segregation Principle,接口分離原則):客戶不應該依賴他們并未使用的接口
DIP(Dependency Inversion Principle,依賴倒置原則)
(2)模式與設計模式
模式是某外在環境(Context) 下﹐對特定問題(Problem)的慣用解決之道。其中最重要的是設計模式。
(3)設計模式實示例
設計模式四個基本元素
Pattern name:描述模式,便于交流,存檔
Problem:描述何處應用該模式
Solution:描述一個設計的組成元素,不針對特例
Consequence:應用該模式的結果和權衡
示例及運行結果:
(四)練習
1.使用TDD的方式設計實現復數類Complex。
設計思路:在測試類中,人為設置測驗標準(即注明若干情況下的輸出量,應本著盡可能全面的原則);在產品代碼中,為了符合測試類標準,應該分情況進行輸出。
代碼實現及運行結果:
?????????
?
????????????????
2.PSP統計:
| 步驟 | 耗時 | 百分比 |
| 需求分析 | 2min | 10% |
| 設計 | 3min | 14% |
| 代碼實現 | 5min | 24% |
| 測試 | 3min | 14% |
| 分析總結 | 8min | 38% |
?
轉載于:https://www.cnblogs.com/5219hsw/p/4486561.html
總結
以上是生活随笔為你收集整理的Java第二次实验报告——Java面向对象程序设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SqlHelper模板
- 下一篇: Cppunit 源码 Synchroni