ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:282.12KB ,
资源ID:18853856      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18853856.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(面向对象 复习资料1Word文件下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

面向对象 复习资料1Word文件下载.docx

1、开发方法:Booch、Coad、OMT、UML、OOSE、WirfsBrock5OOA运用面向对象方法进行需求分析。OOD运用面向对象方法进行系统设计。OOP运用面向对象方法进行程序设计。6OOA的基本任务:是运用面向对象的方法,对问题域和系统责任进行分析和理解,对其中的事物和它们之间的关系产生正确的认识,找出描述问题域及系统责任所需的类及对象,定义这些类和对象的属性和操作,以及它们之间所形成的结构、静态联系和动态联系。最终目的:是产生一个符合用户需求,并能够直接反映问题域和系统责任的OOA模型及其详细说明。优点:(1)加强了对问题域和系统责任的理解。(2)改进与分析有关的各类人员之间的交流。

2、(3)对需求的变化具有较强的适应性。(4)支持软件复用。OOA的三大策略是:属性策略、方法策略、对象策略。7(1)封装:是指对象在其操作中隐藏属性。它是一种信息隐蔽技术,用户只能看见对象封装界面上的信息,对象的内部实现对用户是隐蔽的。封装的目的是使对象的使用者和生产者分开,使对象的定义和实现分开。例如:要从同事那里借钱,在商店购买食物,就不会抢夺同事的钱包,大翻一通,看看里面是否有足够的钱。而应该询问他们是否可以借你一些钱,他们就会自己翻钱包。以表示圆的一个对象作为封装的例子。圆的操作应能计算出半径、直径、周长和面积。假定选择存储直径,要访问直径的程序员都会选择存储直径属性,而不是通过“获取直

3、径”的操作来访问。如果在软件的后续版本中要存储的是半径,就必须找出系统中直接访问直径的所有代码,并更正它们,有了封装,就不会有问题。(2)继承:可以指定类从父类中获取一些特性,再添加它自己的独特特性。继承是类间的基本关系,它是基于层次关系的不同类共享数据和操作的一种机制。父类中定义了其所有子类的公共属性和操作,在子类中除了定义自己特有的属性和操作外,可以继承父类的属性和操作,也可以对父类中的操作重新定义其实现方法。在面向对象中,我们可以把洗衣机、电冰箱、微波炉、收音机看成是家用电气类的子类,也可以说家用电器类是这些类的超类。家用电器类具有的属性OnOffSwitch和electricWire,

4、具有turnOn()和turnOff()操作。因此,如果你知道某物是家用电器,那么就会立即知道它具有家用电器类的属性和操作,这种关系就是继承。每个家用电器类的子类都继承了家用电器类的特征。同时,每个子类都增加了自己的属性和操作。(3)多态:是指同一操作作用于不同的对象上可以有不同的解释,并产生不同的执行结果。“画”操作,作用在“矩形”对象上,则在屏幕上画一个矩形;作用在“圆”对象上, 则在屏幕上画一个圆。也就是说,相同操作的消息发送给不同对象时,每个对象将根据自己所属类中定义的这个操作方法去执行,从而产生不同的结果。RUP 螺旋式、迭代式和递增式方法称为Rational Unified Pro

5、cessRUP核心工作流RUP中有9个核心工作流,分为6个核心过程工作流和3个核心支持工作流1.商业建模2.需求3.分析与设计4.实现5.测试6.部署7.配置和变更管理8.项目管理9.环境重载函数重载是指在同一个作用域内的若干个参数特征不同的函数可以使用相同的函数名字。运算符重载是指同一个运算符可以施加于不同类型的操作数上面。抽象方法和虚方法的区别:1(abstract)抽象方法和(virtual)虚方法的区别在于:虚方法有一个实现部分可以为子类实现有共同的方法,并为派生提供了覆盖该方法的选项,相反,抽象方法没有提供实现部分,强制派生覆盖方法(否则派生类不能成具体类).2.(abstract)

6、抽象方法只能在抽象类中声明,(virtual)虚方法不是。3.(abstract)抽象方法不能声明方法实体,虚方法可以。4.包含抽象方法(只有抽象类才可以包含抽象方法)的类不能实例化(也就是说只可以使用predected和private修饰符),虚方法可以Java中抽象类和接口的区别:1.一个类只能继承一个抽象类。但是,一个类却可以实现多个接口interface2.在abstract class 中可以有自己的数据成员,也可以有非abstract的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在 interface中一般不定

7、义数据成员),所有的成员方法都是abstract的。3.abstract class和interface所反映出的设计理念不同。其实abstract class表示的是is-a关系,interface表示的是like-a关系。4.实现抽象类和接口的类必须实现其中的所有方法。抽象类中可以有非抽象方法。但是,接口中必须都是抽象方法(默认都是 public abstract 类型的)。5.接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。6.抽象类中的变量,其值可以在子类中重新定义,也可以重新赋值。原则之间的相互关系:开闭原则

8、是构造可维护性复用性软件的基石,其他原则是达成开闭原则的手段和工具。为什么需要使用单例模式属性是系统的一种资源,应当避免有多余一个的对象读取特别是存储属性。此外,属性的读取可能会在很多地方发生,创建属性对象的地方应当在哪里不是很清楚。换言之,属性管理器应当自己创建自己的实例,并且自己向系统全程提供这一事例。因此,属性文件管理器应当是一个单例模式负责。 作为对象的创建模式GOF95, 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。 单例模式的要点单例模式的要点有三个; 一是某各类只能有一个实例; 二是它必须自行创建这个实例; 三是它必须自行向整个系统

9、提供这个实例。 1 使用简单工厂模式设计计算器程序/Computer.javapublic class Computer public static void main(String args) throws IOException String strA ; String strB ; String strO ; try BufferedReader br = new BufferedReader(new InputStreamReader (System.in); System.out.print(请输入数据A:) ; strA = br.readLine( ) ;请选择运算符号(+、-、

10、*、/): ) ; strO= br.readLine( );请输入数据B: strB = br.readLine( ) ; String strResult = ; Operation oper = null ; IFactory operFactory = null ; if(strO.equals(+) ) operFactory= new AddFactory( ) ; - operFactory = new SubFactory( ); oper = operFactory.createOperation( ); oper.SetNumberA(Double.valueOf(strA

11、).doubleValue( ) ) ; oper.SetNumberB(Double.valueOf(strB).doubleValue( ) ) ; strResult = Double.toString(oper.GetResult( ) ) ; System.out.print(strResult) ; catch(Exception e ) /Operation.Javapublic abstract class Operation private double numberA; private double numberB; public double GetNumberA() r

12、eturn numberA; public void SetNumberA(double a) numberA = a; public double GetNumberB() return numberB; public void SetNumberB(double b) numberB = b; public abstract double GetResult();/IFactory.Javapublic interface IFactory public abstract Operation createOperation();/AddFactory.Javapublic class Ad

13、dFactory implements IFactory public Operation createOperation() return new OperationAdd();public class SubFactory implements IFactory return new OperationSub();class OperationAdd extends Operation public double GetResult() double result = 0; result = super.GetNumberA() + super.GetNumberB(); return r

14、esult;class OperationSub extends Operation double result= 0; result = super.GetNumberA() - super.GetNumberB();简单工厂模式就是由一个工厂类根据参数来决定创立出哪一种产品类的实例。专门负责将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式。2 策略模式:商场促销public class Context public Strategy strategy ; public Context(char name) throws Exception switch(name)

15、case A : strategy = new ConcreteStrategyA() ; break ; case B : strategy = new ConcreteStrategyB() ; case C : strategy = new ConcreteStrategyC() ; default : throw new Exception(“没有此类输入”);public void contextInterface() strategy.algorithInterface();public abstract class Strategy public abstract void al

16、gorithInterface() ;public class ConcreteStrategyA extends Strategy public abstract void algorithInterface() system.out.println(“打折算法”) ;public class ConcreteStrategyB extends Strategy system.out.println(“满100送60算法”) ;public class ConcreteStrategyC extends Strategy system.out.println(“正常收费,不参加活动!”) ;

17、public class Client public static void main(String args) throws Exception Context context ; context = new Context(A) ; context.contextInterface() ;特点:(1)Strategy属于设计模式中的对象行为型模式,主要是定义一系列的算法,把这些算法一个个封装成单独的类,使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。(2)它提供了一种用多个行为中的一个行为来配置一个类的方法。(3)它需要使用一个算法的不同变体。(4)它以避免暴露复杂的、与算法相

18、关的数据结构。(5)一个类定义了多种行为, 并且这些行为在这个类的操作中以多个条件语句的形式出现。将相关的条件分支移入它们各自的Strategy 类中以代替这些条件语句。3 装饰模式/Person.Javapublic class Person private String name; public Person() public Person(String name) this.name = name; public void show() System.out.println(装扮的+name);/Client.Javapublic class Client public static v

19、oid main(String args) Person person = new Person(流浪);第一种装扮 Clothing dtx = new Tshirt(); Clothing ckk = new CrossPants(); dtx.Decorator(person); ckk.Decorator(dtx); ckk.show();第二种装扮 Clothing xz = new Suit(); Clothing ld = new Tie(); xz.Decorator(person); ld.Decorator(xz); ld.show();/Clothing.Javapubl

20、ic class Clothing extends Person protected Person component; public void Decorator(Person component) ponent = component; if(component != null) component.show();/CrossPants.Javapublic class CrossPants extends Clothing穿跨裤 super.show();/suit.Javapublic class Suit extends Clothing 穿西装/Tie.Javapublic cla

21、ss Tie extends Clothing 打领带/Tshirt.Javapublic class Tshirt extends Clothing Tshirt动态地给一个对象添加一些额外的职责。就增加功能来说,使用装饰模式相比用生成子类方式达到功能的扩充显得更为灵活。我们通常可以使用继承来实现功能的拓展,如果这些需要拓展的功能种类很繁多,那么势必生成很多子类,增加系统的复杂性,同时,使用继承实现功能拓展,我们必须可预见这些拓展功能,这些功能是编译时就确定了,是静态的。使用Decorator时这些功能需要由用户动态决定加入的方式和时机.装饰模式提供了“即插即用”的方法,在运行期间决定何时增

22、加何种功能。4使用工厂方法设计模式设计工资打印程序import java.io.BufferedReader;import java.io.InputStreamReader;public class ClientPrint public static void main(String args) try String stremp; System.out.print(请输入员工: BufferedReader br = new BufferedReader(new InputStreamReader(System.in); stremp = br.readLine(); Employee emp; emp = EmployeeFactory.createEmployee(stremp); emp.getSalary(); catch(Exception e)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1