北京電子科技學院(BESTI)html
《Java程序設計》課實驗報告java
班級:201351 姓名及學號:宋世超 20135106程序員
指導教師:婁佳鵬 必修/選修:選修編程
實驗日期: 2015年5月7日 實驗時間: 18:30至20:30設計模式
實驗序號:(二) 成績:網絡
實驗名稱:Java面向對象程序設計編程語言
1、實驗內容編輯器
1. 初步掌握單元測試和TDD函數
2. 理解並掌握面向對象三要素:封裝、繼承、多態工具
3. 初步掌握UML建模
4. 熟悉S.O.L.I.D原則
5. 瞭解設計模式
2、實驗要求
1.沒有Linux基礎的同窗建議先學習《Linux基礎入門(新版)》《Vim編輯器》 課程
2.完成實驗、撰寫實驗報告,實驗報告以博客方式發表在博客園,注意實驗報告重點是運行結果,遇到的問題(工具查找,安裝,使用,程序的編輯,調試,運行等)、解決辦法(空洞的方法如「查網絡」、「問同窗」、「看書」等一概得0分)以及分析(從中能夠獲得什麼啓示,有什麼收穫,教訓等)。報告能夠參考範飛龍老師的指導
3. 嚴禁抄襲,有該行爲者實驗成績歸零,並附加其餘懲罰措施。
4. 請你們先在實驗樓中的~/Code目錄中用本身的學號創建一個目錄,代碼和UML圖要放到這個目錄中,截圖中沒有學號的會要求重作,而後跟着下面的步驟練習。
3.實驗報告中統計本身的PSP(Personal Software Process)時間
4. 嚴禁抄襲。
3、實驗步驟
(1) 三種代碼
編程是智力活動,不是打字,編程前要把幹什麼、如何幹想清楚才能把程序寫對、寫好。與目前很多同窗一說編程就打開編輯器寫代碼不一樣,我但願同窗們養成一個習慣,當大家想用程序解決問題時,要會寫三種碼:
(2) TDD(Test Driven Devlopment, 測試驅動開發)
(二)面向對象三要素
(1)抽象
抽象一詞的本意是指人在認識思惟活動中對事物表象因素的捨棄和對本質因素的抽取。抽象是人類認識復瑣事物和現象時常用的思惟工具,抽象思惟能力在程序設計中很是重要,"去粗取精、化繁爲簡、由表及裏、異中求同"的抽象能力很大程度上決定了程序員的程序設計能力。
抽象就是抽出事物的本質特徵而暫時不考慮他們的細節。對於複雜系統問題人們藉助分層次抽象的方法進行問題求解;在抽象的最高層,可使用問題環境的語言,以歸納的方式敘述問題的解。在抽象的較低層,則採用過程化的方式進行描述。在描述問題解時,使用面向問題和麪向實現的術語。
程序設計中,抽象包括兩個方面,一是過程抽象,二是數據抽象。
(2)封裝、繼承與多態
面向對象(Object-Oriented)的三要素包括:封裝、繼承、多態。面向對象的思想涉及到軟件開發的各個方面,如面向對象分析(OOA)、面向對象設計(OOD)、面向對象編程實現(OOP)。OOA根據抽象關鍵的問題域來分解系統,關注是什麼(what)。OOD是一種提供符號設計系統的面向對象的實現過程,用很是接近問題域術語的方法把系統構形成「現實世界」的對象,關注怎麼作(how),經過模型來實現功能規範。OOP則在設計的基礎上用編程語言(如Java)編碼。貫穿OOA、OOD和OOP的主線正是抽象。
OOD中建模會用圖形化的建模語言UML(Unified Modeling Language),UML是一種通用的建模語言,咱們實驗中使用umbrello進行建模,Windows中推薦你們使用 StarUML。
過程抽象的結果是函數,數據抽象的結果是抽象數據類型(Abstract Data Type,ADT),類能夠做具備繼承和多態機制的ADT。數據抽象纔是OOP的核心和起源。
OO三要素的第一個要素是封裝,封裝就是將數據與相關行爲包裝在一塊兒以實現信息的隱藏。
(三)設計模式初步
1、S.O.L.I.D原則
如何藉助抽象思惟用好三要素特別是多態是很是困難的,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,依賴倒置原則)
2、模式與設計模式
模式是某外在環境(Context) 下﹐對特定問題(Problem)的慣用解決之道(Solution)。模式必須使得問題明晰,闡明爲何用它來求解問題,以及在什麼狀況下有用,什麼情 況下不能起做用。每一個模式因其重複性從而可被複用,自己有本身的名字,有可傳授性,能移植到不一樣情景下。模式能夠看做對一個問題可複用的專家級解決方法。
計算機科學中有不少模式:
• GRASP模式
• 分析模式
• 軟件體系結構模式
• 設計模式:建立型,結構型,行爲型
• 管理模式: The Manager Pool 實現模式
• 界面設計交互模式
• …
3、設計模式實示例
(1)設計模式(design pattern)提供一個用於細化軟件系統的子系統或組件,或它們之間的關係圖,它描述通訊組件的公共再現結構,通訊組件能夠解決特定語境中的一個設計問題。
設計模式背後是抽象和SOLID原則。
(2)設計模式有四個基本要素:
• Pattern name:描述模式,便於交流,存檔
• Problem:描述何處應用該模式
• Solution:描述一個設計的組成元素,不針對特例
• Consequence:應用該模式的結果和權衡(trade-offs)
(3)瞭解設計模式可能會存在的過分設計問題以及如何避免它。
(四)練習
1使用TDD的方式設計關實現複數類Complex。
(1)僞代碼
複數類Comple
複數=實部數+虛部數i
複數相加=(實部+實部)+(虛部+虛部)i
複數相減=(實部—實部)+(虛部—虛部)i
打印複數:
虛部大於0 「實部」+「實部」+「虛部」+「i」
虛部大於0 「實部」+「虛部」+「i」
虛部爲0 「實部」
(2)產品代碼
(3)測試代碼
2. .實驗報告中統計本身的PSP(Personal Software Process)時間
步驟 |
耗時 |
百分比 |
需求分析 |
20min |
20% |
設計 |
15min |
15% |
代碼實現 |
35min |
35% |
測試 |
15min |
15% |
分析總結 |
15min |
15% |
(五)遇到的問題與解決方法
遇到問題:
解決方法:
1.找同窗,已經完成的同窗,幫忙,成功的打開了實驗樓。
2.是本身的打的代碼有問題,不仔細緻使的問題,檢查幾回以後就行了
(六)實驗體會
經過此次的實驗,學會了TDD,好高端的東西,瞭解了一點歷史,而後明白了,原本就有不少的東西不懂,經過大量的閱讀,慢慢的學習。