标签:
Java实验报告二:Java面向对象程序设计
实验要求:
实验内容
实验过程
编写程序需要用到伪代码、产品代码、测试代码。
定义:先写测试代码
,然后再写产品代码
的开发方法
一般步骤如下:
TDD模式测试代码的编写和调试结果
抽象能力是指"去粗取精、化繁为简、由表及里、异中求同"的能力。
程序设计中,抽象包括两个方面,一是过程抽象,二是数据抽象。
面向对象(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,依赖倒置原则)
内容:高层模块不应该依赖于低层模块,二者都应该依赖于抽象;抽象不应该依赖于细节,细节应该依赖于抽象 。
模式是某外在环境下﹐对特定问题的惯用解决方法,可以看作对一个问题可复用的专家级解决方法。
1、四个基本要素:
模式名:描述模式,便于交流,存档
问题:描述何处应用该模式
解决:描述一个设计的组成元素,不针对特例
结果:应用该模式的结果和权衡
2、抽象工厂模式
容易出现过度设计的问题
只是对于整形数据来说的
步骤 | 耗时 | 百分比 |
需求分析 | ||
设计 | ||
代码实现 | ||
测试 | ||
分析总结 |
(1)伪代码:
1. A = a(实数部分) + bi(虚数部分);
2.相加
实数部分与实数部分相加,虚数部分与虚数部分相加
3.相减
实数部分与实数部分相减,虚数部分与虚数部分相减
4.相乘
A*B=ac-bd+(ad+bc)i
A=a+bi, B=c+di
5.显示一个复数
虚部为负数情况,不显示前面的加号
(2)产品代码:
————尚未完成————
标签:
原文地址:http://www.cnblogs.com/SUJUr/p/4486620.html