java程序设计实训心得_20145105 《Java程序设计》实验二总结

实验二Java面向对象程序设计

一、 实验内容:

初步掌握单元测试和TDD

理解并掌握面向对象三要素:封装、多态、建模

初步掌握UML

熟悉S.O.L.I.D原则

了解设计模式

二、 实验步骤

(一)   单元测试

三种代码:伪代码、产品代码、测试代码

(1)       伪代码

53b6ffb914e6ffca753b54b57b3b3638.png

9879b79c265cc9c031a6a84b79246ff2.png

(2)       产品代码

0d71239b30bcab5e17056fa0f39ddd5c.png

(3)       测试代码

bb817f17d57b2615dbcda9f0c80c12ee.png

a7582544c39cf5e388504c828cb962d2.png

6d9e5f030bd6e77536824a6ae8e9ba20.png

e05491e3cb9da052e90b251e64421940.png

(4)       经测试结果有错误

152892af8329c49e057fc17892edc964.png

a2e2a17ac13fddb065289590917d0c9e.png

(5)       作出修改

fadedf15b684573d71f792a6a835f910.png

d8ea719f8a3c953b0b86a81c0dcb5666.png

(6)       测试无误

TDD(Test Driven Development,测试驱动开发)

(1)       新建项目,新建测试目录,新建测试用例类

e42258978716830bed6f9451f7477ec0.png

7f0f7d4c954f8b5b627c588818188bf1.png

(2)       增加测试用例(@Test)

fc3d7483ae2f9fd4bdb24e36a5b9135d.png

(3)       在src中新建MyUtil类,实现测试用例中的方法

24ce6073921983576eead365adecac13.png

(4)       进行测试,通过

67cfca9c2a196d0ce72ea0aea4390420.png

(二)   面向对象三要素

抽象:过程抽象,数据抽象

(1)       过程抽象实例(做了点小修改)

a5fb876c09c9453206b41aa34124e70d.png

cfd92f9975071b18a886674f79bbc5e9.png

2. 封装、继承与多态

(1)       Java中用类进行封装,如Dog类

df426678e87af55dc04a6bd7b6bded61.png

(2)       测试代码及结果

c27adc3dc76c7cfd157db64aab30b1f8.png

100fcdcd678ffe3e4a483c3f1679bfdf.png

(3)       在UML中建立Dog类的类图

12adab7f1ee91d0e7628d6eb1191ac24.png

(4)       仿照Dog类实现Cat类

9f2cc9ace52aa1bd8aeb4411c4bd91d5.png

(5) 将相同属性写入父类

61286a3a17b9589b86aaddc1a8c4e2e9.png (6)最终代码

e57742cee4bb2d5bfeb19da6ee0b7c52.png

6eda0f131204a26212c145c04e8e0507.png

f4c46ca55a1d2d29aaf13a3cfcc75bd9.png

a6742b387685d470b1aefdf3dea10704.png

(三)设计模式初步

(1)S.O.L.I.D原则

1. SRP——单一职责原则

决不要有一个以上的理由修改一个类。对象提供单一职责的高度封装,对象的改变仅仅依赖于单一职责的改变。

2. OCP——开放-封闭原则

软件实体(类,模块,函数等)应该对扩充开放,对修改封闭。

实现手段:(1)抽象和继承,(2)面向接口编程。

3. LSP——替换原则

子类必须可以被其基类所代;使用指向基类的指针或引用的函数,必须能够在不知道具体派生类对象类型的情况下使用它。

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

4. ISP——接口分离原则

客户不应该依赖他们并未使用的接口(接口的功能不要太多)

5. DIP——依赖倒置原则

高层模块不应该依赖于低层模块,二者都应该依赖于抽象;抽象不应该依赖于细节,细节应该依赖于抽象 。

(2)模式与设计模式

模式可以看作对一个问题的可复用的专家级解决方法

模式中最重要的是设计模式

(3)设计模式实例

(四)练习

(1)伪代码

790501cde9d04444a43e5ed4b14b7698.png

(2)测试代码

4370742229bfabb458457830916f72dc.png

(3)产品代码

ce4c358be0f477bd233bd112b508be30.png

260009822cbb1c6c5e660938376cc1ca.png

三、实验问题

1. 代码测试时发现如下错误

3038d3933cf20a0227c415266a74d970.png

修改产品代码

a0fa39c1adc19fa780f656112ceb0a48.png

再次测试,发现依然错误

2c0783b7cce806dd04fa5e045f184480.png

再次修改

4aa3faad2daba330af8acdb12f6d96c8.png

测试通过

四、实验心得

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值