日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

java程序面向对象show,20165309 实验二 Java面向对象程序设计

發(fā)布時(shí)間:2025/3/8 java 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java程序面向对象show,20165309 实验二 Java面向对象程序设计 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2017-2018-2 20165309實(shí)驗(yàn)二《Java面向?qū)ο蟪绦蛟O(shè)計(jì)》實(shí)驗(yàn)報(bào)告

一、實(shí)驗(yàn)內(nèi)容

1. 初步掌握單元測(cè)試和TDD

2. 理解并掌握面向?qū)ο笕?#xff1a;封裝、繼承、多態(tài)

3. 初步掌握UML建模

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

5. 了解設(shè)計(jì)模式

二、實(shí)驗(yàn)步驟

(一)單元測(cè)試

1.三種代碼:偽代碼、測(cè)試代碼、產(chǎn)品代碼

需求:在一個(gè)MyUtil類中解決一個(gè)百分制成績(jī)轉(zhuǎn)成“優(yōu)、良、中、及格、不及格”五級(jí)制成績(jī)的功能。

先用自然語(yǔ)言寫出從意圖層面來(lái)解決問(wèn)題的偽代碼:

百分制轉(zhuǎn)五分制:

如果成績(jī)小于60,轉(zhuǎn)成“不及格”

如果成績(jī)?cè)?0與70之間,轉(zhuǎn)成“及格”

如果成績(jī)?cè)?0與80之間,轉(zhuǎn)成“中等”

如果成績(jī)?cè)?0與90之間,轉(zhuǎn)成“良好”

如果成績(jī)?cè)?0與100之間,轉(zhuǎn)成“優(yōu)秀”

其他,轉(zhuǎn)成“錯(cuò)誤”

然后用Java語(yǔ)言將偽代碼“翻譯”成產(chǎn)品代碼MyUtil.java。

寫測(cè)試代碼MyUtilTest.java來(lái)檢驗(yàn)產(chǎn)品代碼:

JUnit測(cè)試用例:

正常情況

錯(cuò)誤情況(負(fù)數(shù),超過(guò)100的數(shù))

邊界情況(0,60,70,80,90,100)

在項(xiàng)目上右鍵選擇New->Directory建目錄test,右鍵單擊test目錄,在彈出的菜單中選擇Mark Directory as->Test Sources Root來(lái)設(shè)置SOURCEPATH環(huán)境變量。

測(cè)試通過(guò)的截圖如下:

完善產(chǎn)品代碼。

測(cè)試代碼和最終的產(chǎn)品代碼在代碼鏈接里。

2.測(cè)試驅(qū)動(dòng)開發(fā)TDD(測(cè)試代碼->產(chǎn)品代碼)

在新目錄下創(chuàng)建StringBufferDemo類, 鼠標(biāo)單擊類名旁出現(xiàn)的燈泡狀圖標(biāo),在彈出的菜單中Create Test。

測(cè)試StringBufferDemo類的方法charAt()、capacity()、indexOf()、length():

char charAt(int index)返回此序列中指定索引處的 char 值。

int capacity()返回當(dāng)前容量。

int indexOf(String str)返回第一次出現(xiàn)的指定子字符串在該字符串中的索引。

int length()返回長(zhǎng)度(字符數(shù))。

測(cè)試結(jié)果如下:

(二)對(duì)設(shè)計(jì)模式示例進(jìn)行擴(kuò)充,讓其支持Long類

如果要求支持Long類,Document類要修改構(gòu)造方法,這違反了OCP原則。封裝、繼承、多態(tài)解決不了問(wèn)題,這時(shí)就需要設(shè)計(jì)模式了:

class Long extends Data

class LongFactory extends Factory

在MyDoc類中添加測(cè)試代碼: public class MyDoc {

static Document d;

public static void main(String[] args) {

d = new Document(new LongFactory());

d.DisplayData();

}

}

運(yùn)行結(jié)果如下:

代碼在碼云鏈接里。

(三)以TDD的方式開發(fā)一個(gè)復(fù)數(shù)類Complex

偽代碼: Complex類要輸出實(shí)部、虛部,并按照a+bi的形式輸出復(fù)數(shù)。

Complex類中有兩個(gè)變量,實(shí)部A和虛部B。

方法:

getA(int a);返回實(shí)部

getB(int b);返回虛部

ComplexAdd(Complex c);實(shí)現(xiàn)復(fù)數(shù)相加

ComplexMinus(Complex c);實(shí)現(xiàn)復(fù)數(shù)相減

ComplexMulti(Complex c);實(shí)現(xiàn)復(fù)數(shù)相乘

ComplexDiv(Complex c);實(shí)現(xiàn)復(fù)數(shù)相除

toString(int a,int b);將復(fù)數(shù)輸出成a+bi的格式。

測(cè)試結(jié)果:

產(chǎn)品代碼和測(cè)試代碼在碼云鏈接。

(四)面向?qū)ο笕?/p>

抽象

封裝、繼承與多態(tài)

使用UML對(duì)實(shí)驗(yàn)二中代碼進(jìn)行建模

代碼: public abstract class Animal {

private String color;

public String getColor() {

return color;

}

public void setColor(String color) {

this.color = color;

}

public abstract String shout();

}

public class Cat extends Animal {

public String shout() {

return "喵喵";

}

public String toString() {

return "The Cat's color is " + this.getColor() +", and it shouts "+ this.shout() + "!";

}

}

public class Dog extends Animal

{

public String shout() {

return "汪汪";

}

public String toString() {

return "The Dog's color is " + this.getColor() +", and it shouts "+ this.shout() + "!";

}

}

UML圖(由網(wǎng)頁(yè)P(yáng)rocessOn制作)

三、實(shí)驗(yàn)中遇到的問(wèn)題及解決

問(wèn)題1:當(dāng)時(shí)安裝IDEA的時(shí)候選擇的都是默認(rèn)路徑,而且也不算是經(jīng)常用,所以沒有找到Junit jar 包。

解決1:右鍵桌面上的IntelliJ IDEA Ultimate,點(diǎn)進(jìn)屬性里面,復(fù)制地址再粘到“+”就方便找到了~

問(wèn)題2:對(duì)StringBuffer的了解不夠。

解決2:可以參考學(xué)習(xí)這個(gè)網(wǎng)址:www.runoob.com/java/java-stringbuffer.html。

解決3:long型的范圍是-2147483648~2147483647

問(wèn)題4:在設(shè)計(jì)實(shí)現(xiàn)復(fù)數(shù)類時(shí)不知道怎么去拼接字符串。

解決4:嘗試concat()方法后仍存在問(wèn)題,突然又意識(shí)到可以直接+....

四、實(shí)驗(yàn)收獲

這次的實(shí)驗(yàn)讓我學(xué)會(huì)了如何去寫測(cè)試代碼,也讓我規(guī)范了編寫代碼的習(xí)慣。跟著老師的博客教程和藍(lán)墨云上的要求去做的同時(shí),我也意識(shí)到了自己對(duì)一些基礎(chǔ)方面的知識(shí)還不夠熟悉...得認(rèn)真看書才是。

步驟

耗時(shí)

百分比

需求分析

15min

12.5

設(shè)計(jì)

20min

16.7

代碼實(shí)現(xiàn)

40min

33.3

測(cè)試

25min

20.8

分析總結(jié)

20min

16.7

總結(jié)

以上是生活随笔為你收集整理的java程序面向对象show,20165309 实验二 Java面向对象程序设计的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。