Java實驗報告二:Java物件導向程式設計

來源:互聯網
上載者:User

標籤:

Java實驗報告二:Java物件導向程式設計

                                                                                                    

實驗要求:

1. 初步掌握單元測試和TDD2. 理解並掌握物件導向三要素:封裝、繼承、多態3. 初步掌握UML建模4. 熟悉S.O.L.I.D原則5. 瞭解設計模式

實驗內容

(一)單元測試(二)物件導向三要素(三)設計模式初步(四)練習

實驗過程

(一)單元測試(1) 三種代碼

編寫程式需要用到虛擬碼、產品代碼、測試代碼。

(2) TDD(Test Driven Devlopment, 測試驅動開發)

定義:先寫測試代碼,然後再寫產品代碼的開發方法

一般步驟如下:

  • 明確當前要完成的功能,記錄成一個測試清單
  • 快速完成編寫針對此功能的測試案例
  • 測試代碼編譯不通過(沒產品代碼呢)
  • 編寫產品代碼
  • 測試通過
  • 對代碼進行重構,並保證測試通過(重構下次實驗練習)
  • 迴圈完成所有功能的開發

TDD模式測試代碼的編寫和調試結果

(二)物件導向三要素(1)抽象

抽象能力是指"去粗取精、化繁為簡、由表及裡、異中求同"的能力。

程式設計中,抽象包括兩個方面,一是過程抽象,二是資料抽象。

(2)封裝、繼承與多態

物件導向(Object-Oriented)的三要素包括:封裝、繼承、多態。包括物件導向分析(OOA)、物件導向設計(OOD)、物件導向編程實現(OOP)。

OOA關注是什麼(what),OOD關注怎麼做(how),OOP在設計的基礎上用程式設計語言(如Java)編碼。

1、封裝

定義:將資料與相關行為封裝在一起以實現資訊就隱藏。

封裝實際上使用方法(method)將類的資料隱藏起來,控制使用者對類的修改和訪問資料的程度,從而帶來模組化(Modularity)資訊隱藏(Information hiding)的好處;介面(interface)是封裝的準確描述手段。 Dog類通過使用類和存取控制(private,public)隱藏了屬性color,開放了介面setColor(),getColor(),bark()toString

利用UML軟體設計Dog類、Cat類和Animal類,並在eclipse中實現。

2、建模語言UML

UML是一種通用的建模語言,我們實驗中使用umbrello進行建模,Windows中推薦大家使用 StarUML。

過程抽象的結果是函數,資料抽象的結果是抽象資料類型(ADT),類可以作具有繼承和多態機制的ADT。資料抽象才是OOP的核心和起源。

利用UML軟體為Animal測試程式建模,並通過eclipse實現。

(三)設計模式初步(1)S.O.L.I.D原則

1、SRP(Single Responsibility Principle,單一職責原則)

內容:決不要有一個以上的理由修改一個類。對象提供單一職責的高度封裝,對象的改變僅僅依賴於單一職責的改變。

2、OCP(Open-Closed Principle,開放-封閉原則)

內容:軟體實體(類,模組,函數等)應該對擴充開放,對修改封閉。

對擴充開放,要求軟體模組的行為必須是可以擴充的,在應用需求改變或需要滿足新的應用需求時,我們要讓模組以不同的方式工作;

對修改封閉,要求模組的原始碼是不可改動的,任何人都不許修改已有模組的原始碼。

OCP的實現手段:(1)抽象和繼承,(2)面向介面編程。 

3、LSP(Liskov Substitusion Principle,Liskov替換原則)

內容:子類必須可以被其基類所代;使用指向基類的指標或引用的函數,必須能夠在不知道具體衍生類別物件類型的情況下使用它。

核心思想是父類型對象可以被子類型對象所取代。

4、ISP(Interface Segregation Principle,介面分離原則)

內容:客戶不應該依賴他們並未使用的介面(介面的功能不要太多)

5、DIP(Dependency Inversion Principle,依賴倒置原則)

內容:高層模組不應該依賴於低層模組,二者都應該依賴於抽象;抽象不應該依賴於細節,細節應該依賴於抽象 。

(2)模式與設計模式

模式是某外在環境下﹐對特定問題的慣用解決方案,可以看作對一個問題可複用的專家級解決方案

(3)設計模式實樣本

1、四個基本要素:

  模式名:描述模式,便於交流,存檔

  問題:描述何處應用該模式

  解決:描述一個設計的組成元素,不針對特例

  結果:應用該模式的結果和權衡

2、抽象原廠模式

 容易出現過度設計的問題

只是對於整形資料來說的

(四)練習1使用TDD的方式設計關實現複數類Complex。2.實驗報告中統計自己的PSP(Personal Software Process)時間
步驟 耗時 百分比
需求分析    
設計    
代碼實現    
測試    
分析總結    

 

(1)虛擬碼:

1. A = a(實數部分) + bi(虛數部分);
2.相加

實數部分與實數部分相加,虛數部分與虛數部分相加
3.相減

實數部分與實數部分相減,虛數部分與虛數部分相減
4.相乘
A*B=ac-bd+(ad+bc)i
A=a+bi, B=c+di
5.顯示一個複數
虛部為負數情況,不顯示前面的加號

(2)產品代碼:

————尚未完成————

 

Java實驗報告二:Java物件導向程式設計

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.