實驗二Java物件導向程式設計_20135129李暢宇

來源:互聯網
上載者:User

標籤:

課程:Java實驗   班級:201352     姓名:池彬寧  學號:20135212

成績:             指導教師:婁佳鵬   實驗日期:15.05.05

實驗密級:         預習程度:             實驗時間:

儀器組次:          必修/選修:選修          實驗序號:2

實驗名稱:     Java物件導向程式設計                                                      

實驗目的與要求:                   

1. 初步掌握單元測試和TDD

2. 理解並掌握物件導向三要素:封裝、繼承、多態

3. 初步掌握UML建模

4. 熟悉S.O.L.I.D原則

5. 瞭解設計模式

實驗要求

1.沒有Linux基礎的同學建議先學習《Linux基礎入門(新版)》《Vim編輯器》 課程

2.完成實驗、撰寫實驗報告,實驗報告以部落格方式發表在部落格園,注意實驗報告重點是運行結果,遇到的問題(工具尋找,安裝,使用,程式的編輯,調試,運行等)、解決辦法(空洞的方法如“查網路”、“問同學”、“看書”等一律得0分)以及分析(從中可以得到什麼啟示,有什麼收穫,教訓等)。報告可以參考範飛龍老師的指導

3. 嚴禁抄襲,有該行為者實驗成績歸零,並附加其他懲罰措施。

                             

                                                                       

                                                           

                                                          

                                                          

 

實驗儀器:

名稱

型號

數量

PC

 

1

 

 

 

 

 

實驗內容、步驟與體會(附紙):

(一)單元測試

(1) 三種代碼

編程是智力活動,不是打字,編程前要把幹什麼、如何幹想清楚才能把程式寫對、寫好。與目前不少同學一說編程就開啟編輯器寫代碼不同,我希望同學們養成一個習慣,當你們想用程式解決問題時,要會寫三種碼:

  • 虛擬碼
  • 產品代碼
  • 測試代碼
  • (2) TDD(Test Driven Devlopment, 測試驅動開發)

  • (二)物件導向三要素

    • +表示public
    • #表示 protected
    • -表示 private
    • (三)設計模式初步

      (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)設計模式實樣本

        • 設計模式(design pattern)提供一個用於細化軟體系統的子系統或組件,或它們之間的關係圖,它描述通訊組件的公用再現結構,通訊組件可以解決特定語境中的一個設計問題。 

(四)練習

1、使用TDD的方式設計關實現複數類Complex。

(1)虛擬碼

複數類

複數=實數部+複數部i

複數相加=(實部相加)+(複數部相加)i

相減一樣道理;

列印:

虛部大於0:“實部”+“+”+“虛部”+“i”

虛部小於0:“實部”+“虛部”+“i”

虛部為0:“實部”

(2)產品代碼

//複數列印、相加、相減

public class Complex {

    private int sh,xu;

    Complex(){

         this.sh=0;

         this.xu=0;

    }

    Complex(int sh){

         this.sh=sh;

         this.xu=0;

    }

    Complex(int sh,int xu){

         this.sh=sh;

         this.xu=xu;

    }

    public void addFu(Complex p1,Complex p2){

         System.out.println("這兩個複數的和為:");

         this.sh=p1.sh+p2.sh;

         this.xu=p1.xu+p2.xu;

         print();

    }

    public void minusFu(Complex p1,Complex p2){

         System.out.println("這兩個複數的差為:");

         this.sh=p1.sh-p2.sh;

         this.xu=p1.xu-p2.xu;

         print();

    }

    public void outputFu(){

         System.out.println("複數的值為:");

         print();

    }

    public void print(){

         if(this.xu>0){

               System.out.println(this.sh+"+"+this.xu+"i");

         }else if(this.xu<0){

               System.out.println(this.sh+""+this.xu+"i");

         }else{

               System.out.println(this.sh);

         }

    }

}

 

(3)測試代碼

 

2、實驗報告中統計自己的PSP(Personal Software Process)時間

步驟

耗時

百分比

需求分析

25min

18%

設計

35min

25%

代碼實現

30min

21%

測試

30min

21%

分析總結

20min

15%

3.總結單元測試的好處

(1)使可以放心的修改測試用代碼而不用擔心會影響設計的測試代碼。

(2) 更容易在早期發現問題所在,問題不容易堆積,可以馬上解決。

 

遇到的問題:

   在使用umbrello工具時候,建立類的Abstract無法顯示。

   當輸出為字元時,不懂得如何進行TDD單元測試。

解決方案:

      在建立類後忘記開啟類中的Display的選項,勾去public only選項。

      明確輸出,對輸出進行判斷。

實驗二Java物件導向程式設計_20135129李暢宇

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.