面向对象复习材料3 (2)
面向对象程序设计考试复习资料
面向对象程序设计1. 代码public class Test {public int aMethod() {static int i = 0;i++;return i;}public static void main (String args[]) {Test test = new Test();test.aMethod();int j = test.aMethod();System.out.println(j);}}输出结果为编译失败,static用来修饰全局变量,不能修饰局部变量2. 下面的程序中,temp的最终值是1long temp=(int)3.9;temp%=2;3.在J2EE中属于Web层的组件有:Servlet4. 派生类中的成员不能直接访问基类中的private成员。
5.以public修饰的类如:public class Car{…}则Car可被其它程序包中的类使用6.paint( )方法使用 Graphics 类型的参数7. 下面数据插入语言(DIL)不属于SQL语句的子类8. 实现运行时的多态性要使用虚函数。
9. 创建对象时构造函数被调用10. 如下代码:class Base {Base() { System.out.print(“Base”); }}public class Alpha extends Base {public static void main( String[] args ) {new Alpha();-----调用父类无参的构造方法new Base();}}结果是BaseBase。
11.如果希望控件在界面上按表格行分列排列,应使用GridLayout布局管理器12. 声明抽象方法不可写出大括号叙述正确13. 线程交互中不提倡使用stop()方法14.当检索一个压缩文件时,首先要建立压缩文件输入流对象,该对象以 FileInputStream 对象为参数15.jsp指令中isELIgnored="boolean"的意思是决定是否支持EL表示。
面向对象的程序设计复习资料
⾯向对象的程序设计复习资料⾯向对象复习资料·········⼀、名词解释1、软件⼯程——建⽴在系统化、规范化、数量化等⼯程原则和⽅法上的,关于软件开发各阶段的定义、任务和作⽤的⼯程学科。
包括软件开发技术、软件项⽬管理两⽅⾯内容。
2、模型——对现实的简化,提供系统的蓝图,包含架构[总体]设计和组件[详细]设计;包含重要的因素忽略不相⼲的细节;⼀个系统可以从不同视⾓使⽤不同模型进⾏描述;模型可以是架构的[侧重于组织]、也可以关注⾏为[系统的动作]3、对象——现实世界中具有静态特征和动态特征的某个具体的实际事物。
4、封装——把属性和操作封在⼀个对象⾥,不允许外界直接存取和使⽤。
包含属性与⾏为的结合和信息屏蔽两层含义。
5、消息——向对象发出的[服务]请求,包括服务的对象标识、服务标识、输⼊信息和回答信息等。
定义对象之间单路通信,是从发送⽅到接收⽅的控制流,激发某操作、唤醒信号或导致对象的创建或撤消。
⽤箭头表⽰,符号见表6、继承——派⽣类或⼦类⾃动拥有基类或⽗类的全部属性和操作的类创建⽅法7、多态——同⼀操作作⽤于不同对象,有不同解释或不同的执⾏结果。
两种——编译时、运⾏时;3实现⽅式——接⼝、继承、抽象类。
8、UML——⼀种功能强⼤的、⾯向对象的可视化系统分析的建模语⾔[对⾯向对象系统进⾏可视化、详述、构造和⽂档化的⼯具,已成为软件建模的⼯业标准。
] 9、视图——从某个⽅⾯或⾓度出发描述系统,或表达系统某个⽅⾯特征的⼀个或多个图。
10、动作事物——时间、空间上的动作,模型的动词;最基本的是交互与状态机11、交互——⼀组对象在特定上下⽂、为达到特定⽬的进⾏⼀系列消息交换组成的动作,要列出每个操作的消息、动作次序、连接关系。
12、状态——13、⽤例——14、事件流——15、对象关联——16、可见性——描述属性和操作是否可被其他类引⽤17、活动——对象被占⽤以完成某任务,⽤矩形条表⽰。
面向对象程序设计 复习资料
1.对象(1)从概念层面讲,对象是某种拥有责任的抽象。
(2)从规格层面讲,对象是一系列可以被其他对象使用的公共接口。
(3)从语言实现层面讲,对象封装了代码和数据。
2.软件开发中的经典阶段:需求、分析、设计、规范、实现、测试、部署、维护。
3.设计7原则:开闭原则、里氏代换原则、依赖倒转原则、合成/聚合复用原则、迪M特原则、接口隔离原则、单一职责原则。
4.面向对象的方法学:UML(统一建模语言)、RUP(统一软件开发过程)、XP(极限编程)。
开发方法:Booch、Coad、OMT、UML、OOSE、Wirfs—Brock 5.OOA——运用面向对象方法进行需求分析。
OOD——运用面向对象方法进行系统设计。
OOP——运用面向对象方法进行程序设计。
6.OOA的基本任务:是运用面向对象的方法,对问题域和系统责任进行分析和理解,对其中的事物和它们之间的关系产生正确的认识,找出描述问题域及系统责任所需的类及对象,定义这些类和对象的属性和操作,以及它们之间所形成的结构、静态联系和动态联系。
最终目的:是产生一个符合用户需求,并能够直接反映问题域和系统责任的OOA模型及其详细说明。
优点:(1)加强了对问题域和系统责任的理解。
(2)改进与分析有关的各类人员之间的交流。
(3)对需求的变化具有较强的适应性。
(4)支持软件复用。
OOA的三大策略是:属性策略、方法策略、对象策略。
7.(1)封装:是指对象在其操作中隐藏属性。
它是一种信息隐蔽技术,用户只能看见对象封装界面上的信息,对象的内部实现对用户是隐蔽的。
封装的目的是使对象的使用者和生产者分开,使对象的定义和实现分开。
例如:要从同事那里借钱,在商店购买食物,就不会抢夺同事的钱包,大翻一通,看看里面是否有足够的钱。
而应该询问他们是否可以借你一些钱,他们就会自己翻钱包。
以表示圆的一个对象作为封装的例子。
圆的操作应能计算出半径、直径、周长和面积。
假定选择存储直径,要访问直径的程序员都会选择存储直径属性,而不是通过“获取直径”的操作来访问。
面向对象程序设计 复习资料2
面向对象程序设计复习资料(一)单项选择题1.Java是一门()语言。
A. 机器B. 汇编C. 面向过程的高级D. 面向对象的高级2. 具有相同属性和服务的一组对象的共同模板称为()。
A. 程序B. 类C. 代码D. 概念3.在Java程序中包含主方法的类被称为主类,主方法的访问控制修饰符为()。
A. privateB. protectedC. publicD. static4.Java语言中的switch语句属于()语句。
A. 数据输入B. 数据输出C. 分支处理D. 循环控制5.在类的定义中,实现接口的子句所使用的关键字为()。
A. extendsB. implementsC. publicD. abstract6.在派生类的定义中,继承父类的子句所使用的关键字为()。
A. extendsB. implementsC. publicD. abstract7.下列能表示栈(stack)s1长度的是( )。
A.s1.length()B.s1.lengthC.s1.sizeD.s1.size()8.下面的异常()为文件没有找到异常。
A. NullPointerExceptionB. FileNotFoundExceptionC. ArrayIndexOutOfBoundsExceptionD. IOException9.下列不是InputStream 类的子类的是()。
A. FileInputStreamB. ObjectInputStreamC、 FileOutputStream D. DataInputStream10.进行文件输入输出操作时,最常用的系统包是()。
A. B. java.ioC. java.utilD. java.awt11.类是对具有共同属性和行为的对象的抽象描述,每个对象称为该类的一个()。
A. 产品B. 元素C. 成分D. 实例12.使用JDK运行Java程序时使用的命令是()。
面向对象程序设计复习
面向对象程序设计复习面向对象程序设计(Object-Oriented Programming, OOP)是一种编程范式,它使用“对象”来设计软件。
对象可以包含数据(通常称为属性)和代码(通常称为方法或函数)。
面向对象程序设计的核心概念包括封装、继承、多态和抽象。
封装封装是将数据和操作这些数据的方法组合在一起的过程。
这样做可以隐藏对象的内部状态,只暴露出一个可以被外部访问的接口。
封装的目的是保护数据不被外部代码直接访问和修改,而是通过方法来进行操作。
继承继承允许一个类(子类)继承另一个类(父类或超类)的属性和方法。
这可以减少代码的重复,并且可以创建一个层次结构,其中子类可以扩展或修改父类的行为。
多态多态是指允许不同类的对象对同一消息做出响应,但具体的行为会根据对象的实际类型而有所不同。
这通常是通过方法重载(编译时多态)和方法重写(运行时多态)来实现的。
抽象抽象是简化复杂的现实世界问题的过程,只关注对于当前目标重要的方面。
在面向对象程序设计中,这通常意味着创建抽象类和接口,它们定义了一组方法的签名,但不提供实现细节。
类和对象类是创建对象的蓝图或模板。
它定义了对象的属性和方法。
对象是根据类创建的实例,每个对象都有其自己的状态和行为。
构造函数和析构函数构造函数是一种特殊的方法,当创建新对象时自动调用,用于初始化对象的状态。
析构函数是类的另一个特殊方法,当对象被销毁时调用,用于清理资源。
访问修饰符访问修饰符控制类成员的可见性。
常见的访问修饰符包括public(公开的)、private(私有的)、protected(受保护的)和friend(友元)。
接口和抽象类接口定义了一组方法的签名,但不提供实现。
抽象类可以包含抽象方法,这些方法必须在子类中实现。
组合和聚合组合是一种特殊的“has-a”关系,其中一个对象包含另一个对象作为其属性。
聚合是一种更弱的“has-a”关系,其中一个对象可以与另一个对象相关联,但不是其属性。
《面向对象程序设计》复习资料
《面向对象程序设计》课程期末复习资料《面向对象程序设计》课程讲稿章节目录:第一章、C++基础(16个知识点)01 计算机求解问题的过程02 编程的步骤03 程序设计方法04 程序设计基本概念05 C++程序集成开发环境简介06 C++程序实例07 C++源程序的组成08 C++源程序的组成元素09 C++与C的主要差异–符号常量和标准输入输出流10 C++与C的主要差异–内联函数11 C++与C的主要差异–带默认形参值的函数12 C++与C的主要差异–函数重载13 C++与C的主要差异–动态内存分配和释放14 C++与C的主要差异–动态内存分配和释放程序实例15 C++与C的主要差异–引用和返回引用的函数16 C++与C的主要差异–函数的引用调用第二章、面向对象方法(27个知识点)01 面向对象方法基本概念–对象、类、实例和消息02 面向对象方法基本概念–封装、继承和多态03 类的定义04 构造函数05 对象的定义和访问06 对象的定义和访问程序实例07 类成员的访问控制08 类成员的访问控制程序实例09 析构函数11 类声明和类实现的分离12 类的常量成员13 类的静态数据成员14 类的静态成员函数15 this指针16 类的友元17 类的对象成员–基本概念18 类的对象成员–对象成员的声明、初始化和访问19 自定义类的运算符重载概述20 类成员函数形式的运算符重载21 类友元形式的运算符重载22 赋值运算符和下标运算符重载程序实例23 类设计实例24 面向对象方法程序实例–类和对象的基本定义、构造函数和析构函数25 面向对象方法程序实例–静态成员和多文件结构26 面向对象方法程序实例–友元和运算符重载27 面向对象方法程序实例–对象成员第三章、继承与多态(17个知识点)01 继承概述02 派生类定义03 派生类构造函数和析构函数04 派生类构造函数和析构函数程序实例05 函数重定义和派生类的继承方式06 多重继承下的派生类定义07 多重继承中的二义性问题08 虚拟继承和虚基类09 类型兼容10 多态性的概念和实现原理11 虚函数13 纯虚函数和抽象类14 继承与多态程序实例–派生类定义和函数重定义15 继承与多态程序实例–多重继承16 继承与多态程序实例–虚拟继承和虚函数17 继承与多态程序实例–抽象类和纯虚函数第四章、输入输出流(16个知识点)01 输入输出流概述02 输入输出流对象03 输入输出流的插入和提取运算符04 输入输出流的插入和提取运算符程序实例05 输入输出流的put函数06 输入输出流的get函数07 输入输出流的getline函数08 输入输出流的write函数09 输入输出流的read函数10 输入输出流的write、read函数程序实例11 文件随机读写概述和相关函数12 文件随机读写程序实例13 自定义类型数据的标准输入输出和文本文件输入输出14 自定义类型数据的二进制文件输入输出15 输入输出流程序实例–输入输出流操作16 输入输出流程序实例–插入运算符和提取运算符重载第五章、模板(7个知识点)01 函数模板的定义和使用02 函数模板程序实例03 类模板的定义04 类模板的使用05 类模板的静态成员06 模板程序实例–函数模板07 模板程序实例–类模板一、客观部分:(单项选择、多项选择、不定项选择、判断)(一)、选择部分1、面向对象方法的基本观点是一切系统都是由( C )构成的。
面向对象考前复习资料参考
一、填空题1. 以面向对象方法构造的系统,其基本单位是__________。
对象2. 对象将其大部分实现细节隐藏起来,这种机制称为__________。
封装3. 类中的数据成员的访问属性通常被指明为________。
私有4. 假定x=5,y=6,则表达式x++*++y的值为__________。
355. 把一个类的定义体和所有成员函数的定义体所构成的程序范围叫做该类的____________。
作用域6. 静态数据成员必须在所有函数的定义体外进行__________。
初始化7. 派生类的成员函数可以直接访问基类的__________成员,不能直接访问基类的______成员。
公有、保护;私有8. 若要保证一个公共的基类在派生类中只产生一个基类子对象,则必须都以____________的方式直接继承它。
虚基类9. 如果一个派生类只有一个唯一的基类,则这样的继承关系称为__________。
单继承10. 一个函数定义由________和________两部分组成。
函数头函数体二、选择题1. 以下说法中正确的是()。
BA. C++程序总是从第一个定义的函数开始执行B. C++程序总是从main函数开始执行C. C++函数必须有返回值,否则不能使用函数D. C++程序中有调用关系的所有函数必须放在同一个程序文件中2. 函数重载是指()。
AA. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B. 两个以上函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C. 两个以上的函数名字不同,但形参的个数或类型相同D. 两个以上的函数取相同的函数名,并且函数的返回类型相同3. 关于消息,下列说法中不正确的是()。
BA. 发送消息的对象请求服务,接受消息的对象提供服务B. 消息的发送者必须了解消息的接收者如何响应消息C. 在C++中,消息的发送具体体现为对接收消息的对象的某个函数的调用D. 每个对象只能接收某些特定格式的消息4. 关于封装,下列说法中不正确的是()。
面向对象程序设计复习资料(可编辑修改word版)
面向对象程序设计复习资料(可编辑修改word版)面向对象程序设计期末总复习题一、单项选择题1.下面关于对象概念的描述中,是错误的。
(B)A.对象代表着正在创建的系统中的一个实体B.对象就是C 语言中的结构体变量C.对象是一个状态和操作(或方法)的封装体D.对象之间的信息传递是通过消息进行的2.继承机制的作用是:(C)A.信息隐藏B.数据封装C.定义新类D.数据抽象3.有关析构函数的说法不正确的是(D)A.析构函数有且只有一个B.析构函数无任何函数类型C.析构函数没有形参D.析构函数不能是虚函数4.友元的作用之一是(A)A.提高程序的运行效率B.加强类的封装性C.实现数据的隐藏性D.增加成员函数的种类5.通常拷贝构造函数的参数是。
(C)A.某个对象名B.某个对象的成员名C.某个对象的引用名D.某个对象的指针名6.如果在基类中将show 声明为不带返回值的纯虚函数,正确的写法是。
(C)A.irtual show()=0;B.virtual void show();C.virtual void show()=0;D.void show=0 virtual;7.下面关于友元的描述中,错误的是。
(D)A.友元函数可以访问该类的私有数据成员B.一个类的友元类中的成员函数都是这个类的友元函数C.友元可以提高程序的运行效率D.类与类之间的友元关系可以继承8.在C++中,运算符不能重载。
(B)A. +B.?:C.-D.<=9.下列关于运算符重载的描述中,是正确的。
(D)A.运算符重载可以改变操作数的个数B.运算符重载可以改变优先级C.运算符重载可以改变结合性D.运算符重载不可以改变语法结构10.在下列函数原型中,可以作为类AA 构造函数的是(D)A.void AA(int) ; B.int AA( ) ; C.AA(int)const; D.AA(int);11.在声明类时,下面的说法正确的是。
(C)A.可以在类的声明中给数据成员赋初值B.数据成员的数据类型可以是 registerC.private,public,protected 可以按任意顺序出现D.没有用private,public,protected 定义的数据成员是公有成员12.继承具有,即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员。
面向对象复习
面向对象复习1. 面向对象的概念和特点面向对象编程是一种程序设计思想,它将问题划分为各个独立的对象,对象之间通过消息传递来进行交互,从而实现程序的功能。
面向对象的特点包括封装、继承和多态。
封装是指将数据和对数据的操作封装在一个对象中,对象对外提供公共接口,可以隐藏内部的具体实现细节,提高代码的可维护性和复用性。
继承是指一个类可以继承另一个类的属性和方法,通过继承可以实现代码的重用和层次结构的建立,提高代码的可扩展性。
多态是指同一个方法可以根据调用对象的不同而表现出不同的行为,通过多态可以实现接口的统一访问和提高代码的灵活性。
2. 类和对象的关系类是面向对象编程的基本概念,它是对一组具有相同属性和方法的对象的抽象描述。
对象是类的实例化,是具体的、能够在内存中存在的实体,它可以调用类的方法并访问类的属性。
类和对象的关系是一种抽象与具体的关系,类是对象的模板,对象是类的实例。
通过类可以创建多个对象,每个对象都具有相同的属性和方法,但是其属性的具体取值可以不同。
3. 类的定义和属性、方法的描述类的定义包括类名、属性和方法。
属性是类的特征,描述了类的状态和数据。
属性可以是基本类型(如整数、浮点数等)或其他对象的引用。
属性可以设置为公共属性或私有属性,公共属性可以被外部访问和修改,私有属性只能在类的内部访问和修改。
方法是类的行为,描述了类的操作和功能。
方法可以访问和修改类的属性,它可以是类的公共方法或私有方法,公共方法可以被外部调用,私有方法只能在类的内部调用。
4. 继承和多态的使用继承是面向对象编程的重要特性,它通过子类继承父类的属性和方法,实现代码的重用和层次结构的建立。
多态是指同一个方法可以根据调用对象的不同而表现出不同的行为。
多态通过方法的重写和接口的实现来实现。
在使用多态时,可以通过父类类型的引用指向子类的对象,从而实现对子类对象的访问。
5. 面向对象的设计原则面向对象设计的目标是实现代码的重用、可扩展和易维护。
面向对象程序设计考前复习题及答案
简答题1、传统的结构化程序设计的优点和缺点是什么?优点:(1)这种程序设计方法力求算法描述精确。
(2)对每一子过程模块简单进行程序正确性证明。
缺点:(1)这种程序设计方法本质上是面对“过程”的,而“过程”和“操作”又是不稳定和多变的,因此不能干脆反映人类求解问题的思路。
(2)程序代码可重用性差。
程序中除少数标准库函数外,每设计一个程序时,程序员几乎从零做起。
即使重用代码,通常也是通过拷贝或编辑重新生成一份。
(3)维护程序的一样性困难。
该种方法将数据与对数据进行处理的程序代码分别。
2、什么是对象?每个对象都具有属性(Attribute)和方法(Method)这两方面的特征。
对象的属性描述了对象的状态和特征,对象的方法说明白对象的行为和功能,并且对象的属性值只应由这个对象的方法来读取和修改,两者结合在一起就构成了对象的完整描述。
3、什么是消息?在面对对象的程序设计中,由于对象描述了客观实体,它们之间的联系通过对象间的联系来反映。
当一个对象须要另外一个对象供应服务时,它向对方发出一个服务恳求,而收到恳求的对象会响应这个恳求并完成指定的服务。
这种向对象发出的服务恳求就称为消息。
4、什么是多态性?所谓多态性是指当程序中的其他部分发出同样的消息时,根据接收消息对象的不同能够自动执行类中相应的方法。
其好处是,用户不必知道某个对象所属的类就可以执行多态行为,从而为程序设计带来更大便利。
5、什么是面对对象的程序设计方法?这种方法将设计目标从模拟现实世界的行为转向了模拟现实世界中存在的对象及其各自的行为。
在OOP中,将“对象”作为系统中最基本的运行实体,整个程序即由各种不同类型的对象组成,各对象既是一个独立的实体,又可通过消息相互作用,对象中的方法确定要向哪个对象发消息、发什么消息以及收到消息时如何进行处理等。
6、面对对象方法的特点是什么?(1)OOP以“对象”或“数据”为中心。
由于对象自然地反映了应用领域的模块性,因此具有相对稳定性,可以被用作一个组件去构成更困难的应用,又由于对象一般封装的是某一实际需求的各种成分,因此,某一对象的变更对整个系统几乎没有影响。
面向对象复习资料
面向对象复习资料复习资料模拟题一一、单项选择题1.C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是( )A.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数C.规定函数说明符必须用原型D.引进了类和对象的概念2.下列符号不能组成标识符的是( )A.连接符B.下划线C.大小写字母D.数字字符3.类型修饰符unsigned不能修饰( )A. charB. intC. long intD. float4.在int a=3,int *p=&a;中,*p的值是( )A.变量a的地址值B.无意义C.变量p的地址值D.35.下列关于指针的操作中,错误的是( )A.两个同类型的指针可以进行比较运算B.可以用一个空指针赋给某个指针C.一个指针可以加上两个整数之差D.两个同类型的指针可以相加6.重载函数在调用时选择的依据中,错误的是( )A.函数的参数B.参数的类型C.函数的名字D.函数的类型7.一个函数功能不太复杂,但要求被频繁调用,选用( )A.内联函数B.重载函数C.递归函数D.嵌套函数8.下列不是描述类的成员函数的是( )A.构造函数B.析构函数C.友元函数D.复制构造函数9.构造函数不具备的特征的是( )A.构造函数的函数名与类名相同B.构造函数可以重载C.构造函数可以设置默认参数D.构造函数必须指定类型说明10.通常,拷贝构造函数的参数是( )A.某个对象名B.某个对象的成员名C.某个对象的引用名D.某个对象的指针名11.继承机制的作用是( )A.信息隐藏B.数据封装C.定义新类D.数据抽象12.类的析构函数的作用是( )A.一般成员函数B.类的初始化C.对象的初始化D.撤消对象时所做的清理工作13.类的析构函数是在( )调用的。
A.类创建时B.创建对象时C.删除对象时D.不自动调用14.在( )情况下适宜采用inline定义内联函数。
A.函数体含有循环语句B.函数体含有递归语句C.函数代码少、频繁调用D.函数代码多、不常调用15.如果类A被说明成类B的友元,则( )A.类A的成员即类B的成员B.类B的成员即类A的成员C.类A的成员函数不得访问类B的成员D.类B不一定是类A的友元二、填空题1.对象的三大基本特性是多态性、___ ____、封装性。
计算机编程面向对象复习
计算机编程面向对象复习在计算机编程领域,面向对象编程(Object-oriented Programming,简称OOP)是一种常用的编程范式。
具备深入了解和掌握面向对象编程的知识对于计算机科学专业的学生来说是非常重要的。
本文将对面向对象编程进行复习,以帮助读者加深对该概念的理解。
一、面向对象编程基础概念面向对象编程是一种软件设计和编写代码的方法,其核心思想是通过定义和创建对象来实现程序功能。
在面向对象编程中,对象是将数据和相关的操作封装在一起的实体。
下面将介绍面向对象编程的几个基本概念。
1. 类(Class)类是面向对象编程的基本构建块。
它是一个模板或蓝图,用于创建对象。
类可以定义对象的属性(成员变量)和方法(成员函数)。
举例来说,我们可以创建一个名为"Person"的类来表示人的概念,该类可以包含姓名、年龄等属性,并且可以有相应的方法来处理这些属性。
2. 对象(Object)对象是由类创建出来的实例。
类定义了对象的属性和行为,而对象则根据类的定义来存储数据和执行操作。
例如,我们可以通过"Person"类创建一个名为"John"的对象,该对象具有特定的姓名和年龄属性,并且可以调用类定义的方法。
3. 封装(Encapsulation)封装是面向对象编程的一项重要特性,它将数据和操作封装在一个对象中,对外部程序隐藏了内部的具体实现细节。
通过封装,对象提供了一种安全和可靠的方式来访问和修改其数据。
这也符合软件工程中的"信息隐藏原则",提高了代码的可维护性和可扩展性。
4. 继承(Inheritance)继承是面向对象编程中的另一个核心概念,它允许我们创建一个新类(子类)来继承现有类(父类)的属性和方法。
子类可以继承和重用父类的代码,同时还可以扩展或修改父类的功能。
继承提供了代码重用和层次化编程的能力,使得程序设计更加灵活和可维护。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象分析与设计复习材料3一、单项选择题( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
每小题 2 分,共20 分)1.到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是()的形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。
A. Simula67语言B. Smalltalk语言C. Java语言D. 统一建模语言(UML)的标准2. 面向对象的运动产生了多种面向对象的语言, 其中()是一种混合性面向对象语言, 既支持面向过程的程序设计方法,又支持面向对象的程序设计方法,有广泛应用的基础和丰富开发环境的支持,因而使面向对象的程序设计能得到很快普及。
A. SmalltalkB. EiffelC. C++D. Java3.下列不属于面向对象技术的基本特征的是()。
A. 封装性B. 模块性C. 多态性D. 继承性4. 面向对象程序设计将描述事物的数据与( ) 封装在一起,作为一个相互依存、不可分割的整体来处理。
A. 信息B. 数据隐藏C. 对数据的操作D. 数据抽象5. 关于面向对象方法的优点,下列不正确的叙述是()。
A. 与人类习惯的思维方法比较一致B. 可重用性好C. 以数据操作为中心D.可维护性好6. ()是从用户使用系统的角度描述系统功能的图形表达方法。
A. 类图B. 对象图C. 序列图D. 用例图7. ( ) 是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图和其他图的基础。
A.对象图 B. 组件图 C. 类图 D. 配置图8.()描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。
A.对象图 B. 协作图 C. 状态图 D. 序列图9.()就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统中软件和硬件的物理架构。
A. 组件图B. 协作图C. 状态图D. 配置图10. 使用UML进行关系数据库的()时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。
A. 业务Use Case模型设计B. 逻辑数据模型设计C. 物理数据模型设计 C. 物理实现设计二、填空题( 每空 1 分,共20 分)1. 面向对象开发方法一改过去传统的以____功能分析____为基础的___面向过程____的结构化分析与设计方法,它模拟人们理解和处理客观世界的方式来分析问题,把系统视为一系列__对象_____的集合,其____面向对象的设计_____又将分析的结果映射到某种面向对象实现工具的结构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编程者都可使用相同的__概念____,从而使面向对象的软件开发能比较自然地模拟客观世界的活动,使问题描述空间与_____解空间_______在结构上尽可能一致。
因此,采用面向对象方法可以更有效地开发大型软件系统。
面向对象方法的____封装____、___继承_____、___多态______等机制不仅支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造,更好地克服__软件危机__________。
因此,它已成为成熟的广为采用的软件开发方法。
2. 对象是客观实体的抽象表示,是由___描述对象属性的数据______和___对这些数据进行的操作行为______两部分组成。
而__类____是对具有相同属性和行为的一组对象的抽象描述。
因此,它可作为一种用户自定义类型和创建对象的样板,而按照这种样板所创建的一个个具体对象就是类的___实例___。
通过___继承_____关系又可形成一种类层次结构。
3. UML中用于描述系统的静态建模的视图称为静态视图,包括__用例图__、__类图__、__对象图___、___包图__和_构件图_____。
四. 简答题(每小题5分,共20 分)1. 简述面向对象软件开发方法的优点。
1)把软件系统看成是各种对象的集合,这更接近人的思维;2)软件需求的变动往往是功能的变动,而功能的执行者---对象,一般不会有太大的变化。
这使得按照对象设计出来的系统结构比较稳定;3)支持封装、继承、多态和抽象,提高软件的可重用性。
可维护性和可扩展性3. 简述OOA模型的层次结构。
答:OOA模型采用五层次结构,它们分别是:(1)对象-类层划分待开发系统及其环境信息的基本构造单位,标出反映问题域的对象和类,并用符号进行规范的描述,用信息提供者熟悉的术语为对象和类命名。
(2)属性层定义对象和某些结构中的数据单元,继承结构中所有类的公共属性可放于通用类中。
标识对象类必需的属性并放在合适的继承层次上,属性的特殊限制和实例连接关系也应标识出来。
(3)服务层表示对象的服务或行为,即是要定义类上的操作。
(4)结构层标识现实世界中对象之间的关系。
当一个对象是另一个对象的一部分时,用"整体-部分"关系表示;当一个类属于另一个类时,用类之间继承关系表示。
(5)主题层可将相关类或对象划分为一个主题。
4. 简述OOD模型的总体结构,并画图表示。
答案:OOD体系结构的各个部分内容: (1)问题论域部分,在OOA模型的基础上,细化分析结果,设计一组构成底层应用模型的类和对象。
(2)人机交互部分:设计用户界面模型,该用户界面模型中的类和对象提供实现人机交互操作的接口函数。
用户界面设计包括菜单设计、窗口设计、输入/输出界面设计等等。
(3)任务管理部分:建立一些类,用以负责处理操作系统级的并发问题、中断、调度以及其它与特定平台有关的问题。
(4)数据管理部分:提供数据管理系统中存储和检索对象的基本结构,包括对永久性数据的访问和管理。
数据管理设计包括: — 数据存放设计:数据存放设计选择数据存放的方式(文件存放、关系数据库表格存放或面向对象的数据库存放)。
— 设计相应的操作。
为每个需要存储的对象和类增加用于存储管理的属性和操作,在类和对象的定义中加以描述。
五. 试用UML 对教学管理系统及相关的数据库系统进行分析和设计。
学生选课系统一般包括(1)选课管理功能;(2) 成绩管理功能。
试完成下列工作:(1)建立系统静态结构模型—画出系统用例图和类图;(10分)(2) 建立系统动态结构模型—画出系统序列图和协作图;(10分)(3)建立关系数据库逻辑模型。
(10分)(1) 系统用例图如下学生(a)选课管理的用例图学生(b )成绩管理的用例图对象类图如下:class & object layer (类及对象层)attribute layer (类及对象层)service layer (服务层)struct layer (结构层)subject layer (主题层)图1.5 OOD 模型的总体结构(a)选课对象类图(b)成绩管理对象类图(2)把需要持久存储的数据实体类及其联系,映射成为如下关系数据库表:学生(学生号、姓名、出生日期、性别、籍贯、地址、电话、入学时间、专业、班级备注)教师(教师号、姓名、出生日期、性别、籍贯、地址、电话、职称、专长、备注)课程(课程号、课程名、描述、学分、学时、性质、备注)开设课程(课程号、学期、授课日期、授课时间、地点、选修人数、备注)面向对象分析与设计试题C卷一、单项选择题( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
每小题 1 分,共20 分)1.面向对象技术的最重要的基本特征是()。
A. 抽象性B. 封装性C. 多态性D. 继承性2. 面向对象程序设计将描述事物的数据与( ) 封装在一起,作为一个相互依存、不可分割的整体来处理。
A. 信息B. 数据隐藏C. 对数据的操作D. 数据抽象3. 关于面向对象方法的优点,下列不正确的叙述是()。
A. 与人类习惯的思维方法比较一致B. 可重用性好C. 以数据操作为中心D.可维护性好4. C++ 对C 语言作了很多改进,即从面向过程变成为面向对象的主要原因是( )。
A. 增加了一些新的运算符B. 允许函数重载,并允许设置缺省参数C.规定函数说明符必须用原型 D. 引进了类和对象的概念5. 下列不属于类的成员函数的是( )。
A. 构造函数B. 析构函数C. 友元函数D. 拷贝构造函数6. 继承机制的作用是( )。
A. 信息隐藏B. 数据封装C. 派生新类D. 数据抽象7. 类模板经过实例化而生成具体( )A. 对象B. 模板函数C. 函数模板D. 类8. 类的析构函数是在( ) 调用的。
A. 类创建时B. 创建对象时C. 删除对象时D. 不自动调用9. 在公有继承的情况下,基类成员在派生类中的访问权限( )A. 受限制B. 保持不变C. 受保护D. 不受保护10. C++ 语言通过( ) 来建立类族。
A. 类的嵌套B. 类的继承C. 虚函数D. 抽象类11.在UML中,有3种基本构造块,分别是()A. 事物、关系和图B. 注释、关系和图C. 事物、关系和结构D. 注释、关系和结构12.在UML中,有四种关系,下面哪个不是()A.依赖关系B.继承关系C.泛化关系D.实现关系13.下面哪个不是UML中的静态视图()A.状态图B.用例图C.对象图D.类图14.在用例之间,会有三种不同的关系,下列哪个不是他们之间可能的关系()A.包含(include)B.扩展(extend)C.泛化(generalization)D.关联(connect)15.下列关于活动图的说法错误的是()A. 一张活动图从本质上说是一个流程图,显示从活动到活动的控制流B. 活动图用于对业务过程中顺序和并发的工作流程进行建模。
C. 活动图的基本要素包括状态、转移、分支、分叉和汇合、泳道、对象流。
D. 活动图是UML中用于对系统的静态方面建模的五种图中的一种16.用例(Use-case)用来描述系统在事件做出响应时所采取的行动。
用例之间是具有相关性的。
在一个“订单输入子系统”中,创建新订单和更新订单都需要检查用户帐号是否正确。
那么,用例“创建新订单”、“更新订单”与用例“检查用户帐号”之间是()关系A.扩展(extend)B.包含(include)C.分类(classification)D.聚集(aggregation)17.UML中类的有三种,下面哪个不是其中之一()A.实体类B.抽象类C.控制类D.边界类18.阅读图例,判断下列哪个说法是错误的。
()A.读者可以使用系统的还书用例B.每次执行还书用例都要执行图书查询用例C.每次执行还书用例都要执行交纳罚金用例D.执行还书用例有可能既执行图书查询用例,又执行交纳罚金用例19.关于协作图的描述,下列哪个不正确()A.协作图作为一种交互图,强调的是参加交互的对象的组织;B.协作图是顺序图的一种特例C.协作图中有消息流的顺序号;D.在ROSE工具中,协作图可在顺序图的基础上按“F5”键自动生成;20.在UML中,()把活动图中的活动划分为若干组,并将划分的组指定给对象,这些对象必须履行该组所包括的活动,它能够明确地表示哪些活动是由哪些对象完成的。