实验楼第二次试验报告

 

 

实验楼第二次试验报告

北京电子科技学院(BESTIhtml

              java

课程:Java程序设计  班级:1353  姓名:王剑桥  学号:20135316程序员

成绩:               指导教师:娄嘉鹏     实验日期:2015.5.6编程

实验密级:      预习程度:        实验时间:设计模式

仪器组次:      必修/选修:选修     实验序号:2eclipse

实验名称:             JAVA面向对象程序设计                                             编程语言

实验目的与要求:函数

1. 初步掌握单元测试和TDD工具

2.理解并掌握面向对象三要素:封装、继承、多态。单元测试

3.初步掌握UML建模

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

5.了解设计模式。

 

实验仪器:

名称

型号

数量

PC

 Lenovo

1

虚拟机

实验楼

1

 

 

1、实验步骤

Java中有单元测试工具JUnit来辅助进行TDD,咱们用TDD的方式把前面百分制转五分制的例子重写一次,体会一下有测试工具支持的开发的好处。
打开Eclipse,单击File->New->Java Project新建一个TDDDemo的Java项目,以下图:

 

意测试用例前必定要有注解@Test,测试用例方法名任意,代码以下:

 

 

通过测试修改,最终结果以下:

 

以后增长测试异常状况和测试边界状况代码以下:

 

测试运行结果入下:

 

 

(二)面向对象三要素

1)抽象

抽象一词的本意是指人在认识思惟活动中对事物表象因素的舍弃和对本质因素的抽取。抽象是人类认识复琐事物和现象时常用的思惟工具,抽象思惟能力在程序设计中很是重要,"去粗取精、化繁为简、由表及里、异中求同"的抽象能力很大程度上决定了程序员的程序设计能力。
抽象就是抽出事物的本质特征而暂时不考虑他们的细节。对于复杂系统问题人们借助分层次抽象的方法进行问题求解;在抽象的最高层,可使用问题环境的语言,以归纳的方式叙述问题的解。在抽象的较低层,则采用过程化的方式进行描述。在描述问题解时,使用面向问题和面向实现的术语。
程序设计中,抽象包括两个方面,一是过程抽象,二是数据抽象。

2)封装、继承与多态

面向对象(Object-Oriented)的三要素包括:封装、继承、多态。面向对象的思想涉及到软件开发的各个方面,如面向对象分析(OOA)、面向对象设计(OOD)、面向对象编程实现(OOP)OOA根据抽象关键的问题域来分解系统,关注是什么(whatOOD是一种提供符号设计系统的面向对象的实现过程,用很是接近问题域术语的方法把系统构形成现实世界的对象,关注怎么作(how,经过模型来实现功能规范。OOP则在设计的基础上用编程语言(如Java)编码。贯穿OOAOODOOP的主线正是抽象。
OOD中建模会用图形化的建模语言UMLUnified Modeling Language,UML是一种通用的建模语言,咱们实验中使用umbrello进行建模,Windows中推荐你们使用 StarUML

过程抽象的结果是函数,数据抽象的结果是抽象数据类型(Abstract Data TypeADT),类能够做具备继承和多态机制的ADT数据抽象才是OOP的核心和起源。

 

三)设计模式初步

1S.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,依赖倒置原则)

OCP是OOD中最重要的一个原则,OCP的内容是:

  • software entities (class, modules, function, etc.) should open for extension,but closed for modification.
  • 软件实体(类,模块,函数等)应该对扩充开放,对修改封闭。

对扩充开放(Open For Extension )要求软件模块的行为必须是能够扩充的,在应用需求改变或须要知足新的应用需求时,咱们要让模块以不一样的方式工做; 对修改封闭(Closed for Modification )要求模块的源代码是不可改动的,任何人都不准修改已有模块的源代码。 基于OCP,利用面向对象中的多态性(Polymorphic),更灵活地处理变动拥抱变化,OCP能够用如下手段实现:(1)抽象和继承,(2)面向接口编程。

 

 

(四)练习

1、使用TDD的方式设计关实现复数类Complex

1)伪代码

   1定义一个复数类,分别用变量表示复数的实部和虚部。

   2,经过复数类的实部和虚部分别相加减实现复数的相加减。

   3,按照复数的格式将复数打印出来

2)产品代码

 

(3)测试代码

 

 

 

 

2、遇到的问题及解决

一、在本次试验中,基本掌握了TDD测试方法,因为粗心,第一次实验的时候在进行测试代码编写时忘记输入@Test,致使实验结果失败,进过反复查看老师代码后成功找到错误所在解决了该问题;

二、在进行增长异常测试和测试边界实验环节中,最终以至不能达到老师所给的实验结果,提示有错误,在仔细阅读两个java文件以及错误提示后,大胆的修改了老师的代码,修改结果以下:

 

最终达到了测试经过的实验目的。

三、总体实验来看,操做相对不熟悉,通过屡次练习,提升了必定的熟练度,大胆尝试着本身独立操做,基本可以达到基础的运行结果;

3、实验收获 

    在通过第一次使用实验楼后,此次实验对实验楼有了必定的了解,操做起来相对没那么困难。基于老师详细的步骤,可以成功的获得实验结果。在遇到问题的时候,根据eclipse的错误提示,知道该去哪里找错误,通过仔细查阅代码,独立思考问题所在,大胆尝试修改代码,反复屡次调试,最终达到实验练习的题目要求。经过此次的实验操做,学习到了TDD测试方法以及对面向对象的三要素,封装,继承,多态还有抽象等有了必定的了解和认识,弥补了知识的空白。最后又了解了SOLID设计原则,SRP(Single Responsibility Principle,单一职责原则)OCP(Open-Closed Principle,开放-封闭原则)LSP(Liskov Substitusion Principle,Liskov替换原则)ISP(Interface Segregation Principle,接口分离原则)DIP(Dependency Inversion Principle,依赖倒置原则)。此次试验收获颇多。

相关文章
相关标签/搜索