六月 20th 2006 Posted in
技术
期末复习张 钢2006-6-8关于考试考式形式:闭卷时间:6月21日上午8:30-10:05考试地点:教3-110考试内容
书本上的内容为主,也有极少部分是堂上补充的内容
题型是以主观性的题目为主,包括名词解释、问答题、设计题和论述题
考大家对面向对象思想的理解
知识体系
课本上的内容可以分成两部分
第一到第九章是讲述面向对象的理念,包括面向对象的基本概念、思想方法和设计原则。
第十章到第十五章讲述的是面向对象的技术方法,包括应用面向对象的开发技术和一些高级的面向对象应用模式。
重点是前面的部分。
一 面向对象的概念简介
OO和OP的区别和联系(理解)
答:OO设计中属性和行为是包含在单个对象中的,而在面向过程或结构化设计中,属性和行为一般是分开的.即OO程序设计的基本优点是数据和处理数据的操作(代码)都被封装在对象中;OP程序设计把数据与处理数据的操作相分离.
对象和类的定义
答:对象是同时包含数据和行为的实体。类用于创建对象,类定义了用该类创建的所有对象将拥有的属性和行为。
面向对象的四个核心概念
封装:把数据和方法组合到相同实体中,对象只应公开同它交互所需的接口,与使用对象无关的细节对其他对象应该隐藏。
继承:一个类可以继承其他类,并可以利用超类定义的属性和方法。
多态:在继承层次中,所有子类都从它们的超类继承接口,但因为每个子类是独立的实体,所以每个子类可以用不同的方式响应相同的消息。每个类对自己负责。
组合:组合意味着一个对象是从其他一些对象创建的。
二 以对象的方式进行思考
接口与实现的区别(理解)
答:接口是对象之间通信的基本方式,接口应该完整地描述类的用户如何与类进行交互,包括那些用于调用方法和返回某个值的语法。接口常被称为定义继承,它不提供任何实现。接口服务的实现细节对用户来说是隐藏的。实现的更改不应该要求修改用户代码。
电厂例子 P21
发动机和方向盘的例子
接口与实现
接口的设计原则(理解)
1。在设计接口时使用抽象的思想
可重用的类往往具有更抽象的接口,而不是具体的接口。具体的接口往往非常特殊,而抽象的接口则更通用。
2。尽可能向用户提供最少的接口
从用户的角度出发,只给用户提供绝对需要的东西。即类的接口应该尽可能地少。
三 高级的面向对象概念
构造函数
1。构造函数是与类名称相同的方法。
2。没有返回类型。
3。创建对象时自动执行。
4。用于初始化对象。
缺省的构造函数:默认构造函数只调用超类的构造函数。
拷贝构造函数 (理解)
是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构建及初始化。
浅复制:只复制数据属性。
深复制:能够复制指针及对象。
析构函数:析构函数包括适当的清理功能,适合于释放对象在存在期间所获得的系统内存。
运算符重载:允许改变一个运算符的含义。
四 类的设计的指导
类的设计原则
标识公共接口
设计健壮的构造函数
在类中设计错误处理
重用
扩展
可维护性
对象持久性(理解,参考139页11.1节)
私有构造函数的应用
MyPoint类的例子
限制系统中同一时间只能有不多于5个MyPoint对象
声明MyPoint类构造函数为private
定义一个公有的、静态的方法getInstance来控制对象的获取
定义一个私有的、静态的成员变量来记录系统中已有对象的数量
五 继承和组合
继承
Is-a关系
狗的例子
什么时候使用继承
继承的思想就是通过找出共同性从一般扩展到具体。
继承的设计决策:抽象和模型复杂度之间的平衡。
决定设计是为了获得较小的复杂度还是为了获得更多的功能确实是一个需要均衡的行为。主要目标是构造一个灵活的系统,而不增加太多可能导致系统无法承受而崩溃的复杂性。
继承和组合
组合:某个特定的对象由其他对象合成。
Has-a关系
汽车例子
什么时候使用组合
组合是对付软件复杂性的兵器库中的主要武器之一。
继承与封装
是面向对象的两个核心概念
继承会削弱封装,为什么?(理解)
答:会。封装是把类组装为公共的接口和私有实现的过程。封装在类的层次内被消弱了。继承意味着加强与其他类的封装,但是消弱了超类和它的子类之间的封装。超类实现的更改直接影响其子类。
如何解决这个矛盾?(理解)
多态性
动态绑定(96页7.3.2例子)
以多态性为基础的对象容器
要理解面向对象的多态性,理解其在课程大作业中的应
用,理解对象容器
六 框架和重用
两种层次的重用
继承层次
框架重用
创建可重用代码的一种方法是创建框架。
标准框架有两个明显优点:首先,最终用户不必学习新的框架。其次,开发者可以利用已经写好并经过测试的代码。
契约
契约是任何需要开发者遵守的应用程序编程接口(API)规范的机制。API通常被称为框架。JAVA和NET中,实现契约的两种方法是抽象类和接口。
抽象类
抽象类包括一个或多个没有提供任何实现方法的类。抽象类不可以生成对象。
接口
抽象类既提供抽象方法也提供具体方法,而接口则只提供抽象方法,不提供任何实现。任何实现接口的类都必须为所有方法提供实现。
多态性在其中的表现
多态的本质:向对象发送消息会引起不同的反应,反应依赖于该对象。
组合
聚合:聚合是由其他对象组成的复杂对象。在聚合中,您通常看到整体。
关联:关联用于一个对象希望另一个对象为它提供服务的时候。在关联中,通常可以看到构成整体的各部分。
关联的基数:基数描述为参与关联的对象数目以及该参与是可选的还是强制的。
UML
UML的基本概念:UML(Unified Modeling Language 统一建模语言)提供了一种图形化地表示和处理面向对象OO系统的方法。
画法。。。。。
分布式软件体系结构
CORBA
RMI
EJB
了解它们的特点
设计模式
概念
MVC模式(理解)
MODEL VIEW CONTROLLER
模型 视图 控制器
模型是应用程序对象,视图是屏幕表示,而控制器定义用户接口对用户输入作出反应的方式。