Java实验报告二:Java面向对象程序设计 |
您所在的位置:网站首页 › java语法基础实验报告 › Java实验报告二:Java面向对象程序设计 |
Java实验报告二:Java面向对象程序设计
实验要求: 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装、继承、多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计模式实验内容 (一)单元测试 (二)面向对象三要素 (三)设计模式初步 (四)练习实验过程 (一)单元测试 (1) 三种代码编写程序需要用到伪代码、产品代码、测试代码。 定义:先写测试代码,然后再写产品代码的开发方法 一般步骤如下: 明确当前要完成的功能,记录成一个测试列表快速完成编写针对此功能的测试用例测试代码编译不通过(没产品代码呢)编写产品代码测试通过对代码进行重构,并保证测试通过(重构下次实验练习)循环完成所有功能的开发TDD模式测试代码的编写和调试结果 抽象能力是指"去粗取精、化繁为简、由表及里、异中求同"的能力。 程序设计中,抽象包括两个方面,一是过程抽象,二是数据抽象。 (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、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)时间 步骤耗时百分比需求分析 40min 20%设计 60min 30%代码实现 70min 35%测试 20min 10%分析总结 10min 5%
(1)伪代码: 1. A = a(实数部分) + bi(虚数部分);2.相加 实数部分与实数部分相加,虚数部分与虚数部分相加3.相减 实数部分与实数部分相减,虚数部分与虚数部分相减 (2)产品代码: (3)测试代码 (4)实验体会 这次的试验相较于第一次试验难度有所提高,所以花费了较多的时间。而且实验楼环境一直出问题,虽然最后使用了自己电脑上的Eclipse,但Umbrello环节一直没有办法完成,最后在同学电脑上完成。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |