面向对象复习资料2014整理版
面向对象复习资料
复习资料计算机科学与技术《面向对象程序设计》(高本)一、填空(每空1分,共22分)1、属性行为2、对象3、关联聚合泛化4、抽象性封装性继承性多态性5、主类6、application applet7、108、”wang”9、public private 10、间接继承 11、true false 12、105 13、0二、名词解释(每题5分,共30分)1、抽象:所谓抽象是指从许多事物中舍弃个别的、非本质的属性,抽取出共同的、本质的属性的过程,它是形成概念的必要手段。
2、对象:对象是用来描述现实世界中客体的部件,是面向对象软件系统在运行时刻的基本单位。
在程序设计中,对象是现实世界中的客体在应用程序中的具体体现,其中封装了客体的属性信息和行为方式,并用数据表示属性,用方法表示行为方式。
3、消息:消息是一个对象要求另一个对象实施某项操作的请求。
在一条消息中,需要包含消息的接收者和要求接收者执行哪项操作的请求,但并没有说明应该怎样做。
具体的操作过程由接收者自行决定,这样可以很好的保证系统的模块性。
4、继承:所谓继承是指一个类的定义可以基于另外一个已经存在的类,即子类基于从而实现父类代码的重用。
5、多态:所谓多态是指不同的类对象收到同一个消息可以产生完全不同的响应效果的现象。
6、软件工程:“软件工程”是应用计算机科学、数学与管理科学等原理,借鉴传统工程的原则和方法,研究如何有计划、高效率、低成本地开发能够在计算机上正确运行的软件,并试图从理论上和技术上提出一整套适合于软件开发的工程方法学。
四、简答(每题15分,共30分)1、答:软件的生命周期是指从某个软件的需求被提出并开始着手开发到这个软件被最终废弃的整个过程。
通常在这个过程中,应该包括制定计划、需求分析、系统设计、程序编码、系统测试、系统运行及维护阶段。
下面概要地介绍这几个阶段的主要任务。
(1)制定计划在正式开始开发软件项目之前,充分地研究、分析待开发项目的最终目标,整理出其功能、性能、可靠性及接口等方面的需求,计算出所需人力、物力的资源开销,推测日后可能获取的经济效益,提供支持该项目的技术能力以及给出开发该项目的工作计划是这个阶段需要完成的主要任务。
面向对象程序设计复习要点
《面向对象程序设计》总复习第一部分各章复习要点第1章C++一、基本知识1.面向对象程序设计的基本概念●类、对象、属性、方法2.面向对象程序设计的特点●封装、继承、多态二、基本技能1.VC++6.0编程环境的使用●编辑、编译、运行、查错●调试由多个文件组成的程序2.cin和cout的使用第2章数据类型与表达式1.数据的存储●基本类型:整型、实型、字符型、布尔型●构造类型:结构、联合、枚举2.数据的表示●常量、变量3.符号的表示●运算符、表达式第3章C++控制结构一、基本知识1.语句概述●控制语句●函数语句●表达式语句●空语句2.语句要点●格式、执行过程、注意事项二、基本技能1.递推法程序设计●前项推后项●外加循环控制2.穷举法程序设计●用循环列出所有情况●找出满足条件的情况第4章函数一、基本知识1.函数的概念●函数的声明●函数的定义●函数的调用2.函数●数据传递:主函数→子函数,子函数→主函数3.变量的存储类型●动态●静态●寄存器4.变量的作用域●全局变量●局部变量二、基本技能1.嵌套函数设计●并列定义嵌套调用2.递归函数设计●由未知推向已知的递推公式●格式:If 已知else 递推3.重载函数设计●相同:函数名●不同:函数类型、参数(个数或类型)4.函数技巧●内联函数、外联函数●带默认参数值的函数●引用第5章数组、指针与字符串一、基本知识1.数组的概念●一维数组●二维数组●字符数组2.指针●如何获取各种数据的指针●如何用指针表示各种数据●用指针处理数据的优势二、基本技能1.排序●选择法排序●冒泡法排序2.字符串处理●输入●处理:比较、赋值、连接●输出3.指针●指针的定义●指针的获取●用指针表示数据第6章类和对象一、基本知识1.类2.对象3.构造函数4.析构函数5.拷贝构造函数6.友元7.组合类二、基本技能1.构造类●数据●函数(构造函数、析构函数、拷贝构造函数)2.友元函数●定义与使用3.静态成员●定义与使用4.对象数组5.对象指针第7章继承与派生一、基本知识1.继承2.继承方式3.继承的分类4.继承的二义性5.虚基类6.虚函数与纯虚函数7.抽象类二、基本技能1.构造派生类●构造函数、析构函数、拷贝构造函数2.继承要点●子类的对象如何使用基类的成员●子类的成员如何使用基类的成员第8章多态性一、基本知识1.多态性2.运算符重载二、基本技能1.单目运算符重载●前置运算符重载●后置运算符重载2.双目运算符重载3.运算符重载为友元函数●解决重载的二义性第9章模板一、基本知识1.函数模板2.类模板二、基本技能1.函数模板●定义和使用2.类模板●定义和使用第10章输入输出流一、基本知识1.控制格式2.文件二、基本技能文件编程要点●定义文件对象●打开文件●读写数据●关闭文件第二部分复习要点(一)基本概念1.类(构造函数、析构函数、拷贝构造函数)和对象2.面向对象程序的特点3.重载函数4.友元函数5.虚基类6.虚函数、纯虚函数7.抽象类8.模板函数、模板类9.文件类(二)基本技能1.构造类2.构造派生类(单继承、多继承)3.构造抽象类4.定义重载函数5.定义友元函数6.定义运算符的重载7.定义模板函数8.文件对象的使用第三部分主要问题(一)基本概念1.面向对象程序设计的特点是什么?2.类有哪些成分组成?3.构造函数、析构函数和拷贝构造函数的作用?4.重载函数、友元函数的作用?5.类的继承方式有哪些?对子类的对象有何影响?6.虚基类的作用?7.虚函数、纯虚函数的作用?8.运算符重载的作用?9.模板函数、模板类的作用?10.抽象类的作用?(二)基本技能1.面向对象程序设计的技巧有哪些?2.面向对象程序实现软件复用的方法有哪些?3.面向对象程序设计的多态性体现在哪些方面?。
《面向对象程序设计》课程知识 复习 学习材料 试题与参考答案
《面向对象程度设计》课程知识复习学习材料试题与参考答案一、单选题1.下列(C)的调用方式是引用调用。
A.形参和实参都是变量B.形参是指针,实参是地址值C.形参是引用,实参是变量D.形参是变量,实参是地址值2.假定CTest为一个类,并且有一无默认值的的有参构造函数和一无参构造函数,则执行“CTest objTest;”语句时将自动调用该类的(B)。
A.有参构造函数B.无参构造函数C.复制构造函数D.赋值构造函数3.假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a 的值,x为该类的一个对象,则访问x对象中数据成员a的格式为(D)。
A.x.aB.x.a()C.x->GetValue()D.x.GetValue()4.C++编译系统确定调用是具体对象的过程称为关联。
C++有(B)关联。
A.1种B.2种C.3种D.4种5.下面有关重载函数的说法中正确的是(C)。
A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同C.重载函数必须有不同的形参列表D.重载函数名可以不同6.如果表达式a==b中的“==”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为(C)。
A.a.operator==(b)B.b.operator==(a)C.operator==(a,b)D.operator==(b,a)7.下列对继承关系的描述中,(D)是正确的。
A.在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的;B.在公有继承中,基类中只有公有成员对派生类的对象是可见的;C.在私有继承中,基类中只有公有成员对派生类是可见的;D.在私有继承中,基类中的保护成员对派生类的对象是可见的;8.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为(A)。
A.int *p=new int[30];B.int *p=new int(30);C.int *p=new [30];D.*p=new int[30];9.在一个类中可以对一个运算符进行(D)重载。
面向对象技术期末复习资料
面向对象技术期末复习资料(总2页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--《面向对象技术》期末复习资料试卷题型说明:填空题(10分)、选择题(20道题40分)、判断题(10分)、简答题(2道)、写出程序运行结果(4道)、程序填空题(2道)、编程题(1道)。
一~三、基础题(各章的编程实例不考)1、第一章主要重点在节,节,其中节最为重要。
2、第二章主要重点为:(1)指针的定义与使用(特殊指针类型不做为重点)(2)引用的定义与使用注意事项(3)类型转换有所涉及,但分值不是很大(4)重点中的重点是节函数部分,尤其是函数重载。
(5)内联函数与预处理器了解一下。
(6)作用域和生命期理解掌握,特点是变量类型与初始化。
3、第三章:(1)静态成员、this指针、友元涉及的内容不太多,分值在4分左右(2)其他节都很重要,尤其是构造函数与析构函数,以及节~节。
4、第四章:都作为重点5、第五章:除节节以外都很重要。
6、还有一些C++小知识点:(1)a++与++a的用法及区别;(2)字符与字符串长度计算(3)数组的定义及数值表示范围(4)结构化程序设计三种基本结构为顺序结构、选择结构、循环结构。
它们用到的主要语句的用法。
四、简答题:1、什么是函数重载函数重载有何作用书中P522、类定义中的公有成员、保护成员和私有成员各有何差别?答:public为类的外部接口,它定义了类的公有成员,可以被程序中任何代码访问;在类外,对类的任何访问都需要通过该接口进行。
private声明了类的私有成员,凡需要实现信息隐藏的成员可设置为private访问属性,这种类型的成员只能被本类成员函数及友元访问,其他函数无法访问,成为一个外部无法访问的黑盒子。
设置为protected的成员称为保护成员,只能被本类成员函数、派生类成员函数和友元访问,其他函数无法访问。
保护成员与私有成员的访问属性类似,惟一差别在于该类在派生新类时,保护成员可以继续继承,而私有成员则不可以。
面向对象的程序设计复习资料
⾯向对象的程序设计复习资料⾯向对象复习资料·········⼀、名词解释1、软件⼯程——建⽴在系统化、规范化、数量化等⼯程原则和⽅法上的,关于软件开发各阶段的定义、任务和作⽤的⼯程学科。
包括软件开发技术、软件项⽬管理两⽅⾯内容。
2、模型——对现实的简化,提供系统的蓝图,包含架构[总体]设计和组件[详细]设计;包含重要的因素忽略不相⼲的细节;⼀个系统可以从不同视⾓使⽤不同模型进⾏描述;模型可以是架构的[侧重于组织]、也可以关注⾏为[系统的动作]3、对象——现实世界中具有静态特征和动态特征的某个具体的实际事物。
4、封装——把属性和操作封在⼀个对象⾥,不允许外界直接存取和使⽤。
包含属性与⾏为的结合和信息屏蔽两层含义。
5、消息——向对象发出的[服务]请求,包括服务的对象标识、服务标识、输⼊信息和回答信息等。
定义对象之间单路通信,是从发送⽅到接收⽅的控制流,激发某操作、唤醒信号或导致对象的创建或撤消。
⽤箭头表⽰,符号见表6、继承——派⽣类或⼦类⾃动拥有基类或⽗类的全部属性和操作的类创建⽅法7、多态——同⼀操作作⽤于不同对象,有不同解释或不同的执⾏结果。
两种——编译时、运⾏时;3实现⽅式——接⼝、继承、抽象类。
8、UML——⼀种功能强⼤的、⾯向对象的可视化系统分析的建模语⾔[对⾯向对象系统进⾏可视化、详述、构造和⽂档化的⼯具,已成为软件建模的⼯业标准。
] 9、视图——从某个⽅⾯或⾓度出发描述系统,或表达系统某个⽅⾯特征的⼀个或多个图。
10、动作事物——时间、空间上的动作,模型的动词;最基本的是交互与状态机11、交互——⼀组对象在特定上下⽂、为达到特定⽬的进⾏⼀系列消息交换组成的动作,要列出每个操作的消息、动作次序、连接关系。
12、状态——13、⽤例——14、事件流——15、对象关联——16、可见性——描述属性和操作是否可被其他类引⽤17、活动——对象被占⽤以完成某任务,⽤矩形条表⽰。
面向对象程序设计 复习资料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程序时使用的命令是()。
面向对象程序设计复习资料
面向对象程序设计复习资料第2章面向对象思维建立面向对象程序设计的特征:①模块化;②抽象化;③封装;④可组合;⑤继承;⑥软件持续使用时间更长。
面向对象思维分为两步:一是需求分析,识别出有哪些对象,它们分别做什么事(who&&what);二是如何利用对象协作完成一件完整的事情(how)。
·类与对象的概念和关系:1)类是面向对象程序设计方法的核心,利用类可以实现对数据的封装和隐蔽。
在面向对象程序设计中,程序模块是由类构成。
类是对逻辑相关的函数与数据的封装,它是对问题的抽象描述。
C++的语法提供了对自定义类型的支持,这就是类。
正如基本数据类型中隐含的数据和操作,因此在定义一个类时也要说明数据和操作。
2)类实际上是一种抽象机制,它描述了一类为问题的属性和行为,即类描述了一类对象的数据存储和操作特征。
每一个怪物都有一些共同的静态特征,这些共同的特征抽象到类中,统称为该类的属性,属性通过声明普通变量来实现。
每一个怪物都有一些共同的动态行为,这些共同的行为抽象到类中,统称为该类的操作,操作通过声明普通变量来实现。
怪物类伪类图:第3章面向对象思维建模UML:统一建模语言或标准建模语言1)类图:常见的UML图,显示了建模的静态结构,特别是模型中存在的类、类的内部结构以及他们与其他类的关系等。
类与类之间的常见关系:①依赖关系:依赖关系的偶然性和临时性——人依赖船②聚合关系:整体与部分之间是可分离的③继承关系:含义:儿子类继承父亲类,不仅继承所有属性和行为,还自己拓展2)时序图:也称为序列图或循序图或顺序图,是一种UML交互图,它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。
类图表示“不因时间而变化的部分(静态关系)”;时序图表示“随时间而变化的部分(动态行为)”时序图的元素组成和绘制流程:对象:类的实例;三种状态——激活、运行、销毁生命线:对象在一段时间内的存在激活:对象操作的执行消息:对象之间的通信机制(五类:递归调用、普通操作、返回消息、导步调用)3)用例图:指由参与者、用例以及他们之间的关系构成的用于描述系统功能的视图。
《面向对象程序设计》复习资料
《面向对象程序设计》课程期末复习资料《面向对象程序设计》课程讲稿章节目录:第一章、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 )构成的。
面向对象程序设计复习资料(可编辑修改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. 面向对象的设计原则面向对象设计的目标是实现代码的重用、可扩展和易维护。
面向对象复习
面向对象(OOP)三大特性1. 封装2. 多态3. 继承类和对象1. 什么是类?类是一类事务的统称,他是一个抽象的概念比如说人类,动物类,电器类2. 什么是对象?万物皆对象对象是类的一个实例,比如说人类是一个类,张学友是一个对象,张学友是人类中的一个实例3. 类和对象有什么关系?类是对象的模板一个类可以创建无数个对象4.类中可以定义什么元素?静态的特征:属性动态的行为: 方法5.属性的声明?语法 [访问修饰符] 数据类型属性名例如 public int age;6.方法的声明?7.方法的重载(overload)?在同一个类中方法名相同参数列表不同(顺序,个数,类型)和返回值无关8.方法的重写(overwrite)?两个方法,一个在父类中,一个在子类中方法名字相同,参数列表相同父类的返回值要么和子类相同,要么大于子类父类的访问修饰符要么和子类相同,要么小于子类9.构造方法的特点?方法名和类名相同构造方法没有返回值,连void也没有一个类中可以有多个构造方法,形成了重载的关系一个类中有一个默认的无参数的构造方法,当手动写了一个有参数的构造方法之后,无参数的构造方法就消失了,如果还需要使用,必须手动写出来几个关键字:1.package关键字?包的声明:package cn.zrgk.person;包的名字一般是公司域名的倒写方式,避免的别的包发生重名的现象包其实就相当于文件夹一样,这就说明同名的类文件,可以在不同的包里面出现package声明包,必须要在源文件的非注释性的第一条语句2.import关键字?包的导入:import cn.zrgk.person;当使用别的包中的类的时候,需要在程序的上方导入这个包名3.this关键字?在构造方法当中,当参数名字和属性名字相同的时候,区分属性和参数在同一个类中,调用其他的构造方法,this(name,age);调用当前这个类的属性和方法4.super关键字?调用父类的构造方法,super(name,age,sex);必须要在构造方法的第一句话调用父类的属性和方法5.static关键字?修饰属性: public static int age;修饰属性,这样的属性叫做:静态属性或类属性修饰属性调用:** 类名.属性名** 或对象名.属性名修饰方法: public static void show{ }修饰方法:这个方法叫做:静态方法或类方法修饰方法调用:类名.方法名或对象名.方法名静态的方法只能访问静态的属性或方法非静态的方法可以调用静态或者非静态访问修饰符:private: 本类default: 本类同包protected: 本类同包子类public: 本类同包子类其他继承场景:在多个类中,提取一个父类,把相同的属性或者是方法放到父类当中,特有的属性或者方法放到子类当中,使用继承的关系表示继承的关键字:extends继承满足:is a (Dog is a Animal)抽象类场景:父类是一个概念,一般的,创建对象没有意义,所以声明为抽象的,不让创建对象,父类中的方法也可以不实现,声明为抽象的方法抽象的关键字:abstract1.抽象类特点?抽象类不能实例化(不能创建对象)抽象类可以由普通的属性和方法,也可以有抽象方法抽象类中不一定有抽象方法抽象类中抽象方法在子类中一定要重写,不然就报错2.抽象方法?抽象方法没有方法体:public abstract void show();抽象方法在子类中一定要重写抽象方法一定要在抽象类中接口(interface)1.接口中可以定义:静态的常量:抽象的方法:2.Final关键字:修饰属性:修饰属性:常量:一旦定义里面的值不能改变。
面向对象考试重点
一、名词解释1、面向对象方法答:面向对象方法是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO (Object-Oriented)方法,是建立在“对象”概念基础上的方法学。
面向对象方法不仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系。
2、什么是继承、什么是对象、什么是类、什么是聚合?答:继承:继承是指特殊类自动地拥有或隐含地复制其一般类的全部属性与操作,这种机制也称作一般类对待特殊类的泛化。
对象:①现实世界中客观存在的任何事物都可以被看作是对象。
②对象是构成系统的一个基本单位,它由一组属性和对这组属性进行操纵的一组操作构成。
类:类是具有相同属性和操作的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和操作两个主要部分。
类的作用是创建对象,对象是类的一个实例。
聚合:一个对象由其他若干对象作为其构成部分,把这种对象间的关系称为聚合。
聚合刻画了现实事物之间的构成关系。
3、什么是参与者、什么是用况、什么用例?答:参与者:一个参与者定义了一组在功能上密切相关的角色,当一个事物与系统交互时,该事物可以扮演这样的角色。
参与者是在系统之外的与系统进行交互的任何事物。
用况:一个用况是描述系统的一项功能的一组动作序列,这样的动作序列表示参与者与系统间的交互,系统执行该动作序列要为参与者产生结果。
用例图:用例图是一幅由一组参与者、一组用例以及这些元素之间的关系组成的图。
这些关系是参与者和用况之间的关联、参与者之间的继承,以及用例之间的包含、扩展和继承。
4、什么是类图、是顺序图、通讯图?答:类图:类图由许多(静态)说明性的模型元素(例如类、包和它们之间的关系,这些元素和它们的内容互相连接)组成。
类图可以组织在(并且属于)包中,仅显示特定包中的相关内容。
类图是最常用的UML图,显示出类、接口以及它们之间的静态结构和关系;它用于描述系统的结构化设计。
面向对象程序设计2014复习题汇总
第一章异常处理一、选择题1.java中用来抛出异常的关键字是A、tryB、catchC、throwD、finally2.关于异常,下列说法正确的是A、异常是一种对象B、一旦程序运行,异常将被创建C、为了保证程序运行速度,要尽量避免异常控制D、以上说法都不对3.()类是所有异常类的父类。
A、ThrowableB、ErrorC、ExceptionD、AWTError4.java语言中,下列哪一子句是异常处理的出口A、try{…}子句B、catch{…}子句C、finally{…}子句D、以上说法都不对5.下列程序的执行,说法正确的是public class MultiCatch{public static void main(String args[]){try{int a=args.length;int b=42/a;int c[]={1};c[42]=99;System.out.println(“b=”+b);}catch(ArithmeticException e){System.out.println(“除0异常:”+e);}catch(ArrayIndexOutOfBoundsException e){System.out.println(“数组超越边界异常:”+e);}}}A、程序将输出第15行的异常信息B、程序第10行出错C、程序将输出“b=42”D、程序将输出第15和19行的异常信息6.下列程序的执行,说法正确的是class ExMulti{static void procedure(){try{int c[]={1};c[42]=99;}catch(ArrayIndexOutOfBoundsException e){System.out.println(“数组超越界限异常:”+e);}}public static void main(String args[]){try{procedure();int a=args.length;int b=42/a;System.out.println(“b=”+b);}catch(ArithmeticException e){System.out.println(“除0异常:”+e);}}}A、程序只输出第12行的异常信息B、程序只输出第26行的异常信息C、程序将不输出异常信息D、程序将输出第12行和第26行的异常信息7.下面程序抛出了一个“异常”并捕捉它。
面向对象程序设计资料整理长大
面向对象程序设计复习资料(2328)一、单项选择题1.假设P是指针, 声明指针s引用指针p正确方法是( )A.int* s&=p B.int &*s=p C.int *&s=pD.int s* &=p2.在C+ +中, 能够为类的所有成员共享的是( )A、枚举成员B、公有数据成员C、私有函数成员D、公有函数成员3.C+ +中, 下列哪个关键字不能提供封装。
( )A、 structB、 unionC、 classD、 case4.下而关于类的复制构造函数的说法正确的是( )A.一个类只能有一个复制构造函数B.能够为void类型C.不能有返回类型D.不能使用缺省参数5.下面叙述正确的是: ( )A.派生类不能够使用私有派生B.保护派生时, 基类的保护成员在派生类中是公有的C.对基类成员的访问能够允许两义性D.赋值兼容规则也适用于多重继承的组合6.定义虚函数使用关键字( )A.: : B.virtual C.& D.->7.在下面几项中, 运算符在C++中能被重载的是( )A .= B.? : C.sizeof D. : :A.结构B.类C.继承D.引用8.在执行下面程序语句之后, num的值为( )int num = 500;int& ref= num;ref = = ref -50;A.450 B.500 C.-50D.无法确定9.所有在函数外面定义的变量, 连同形式参数, 都属于( )A、局部变量B、全局变量C、静态变量D、寄存器变量10.面向对象的程序中, 哪项不是对象的特点。
( )A、多态性B、抽象性和封装性C、中断D、继承性11.下面在半初始化说法正确的是( )A.初始化列表能够初始化任何类B.初始化列表也也能够初始化具有私有成员的类C.初始化列表只能初始化公有数据成员D.初始化列表能够初始化所有数据成员12.产生编译时的多态性的必要条件是使用( )A.静态成员 B.友元函数 C.重载成员函数D.虚函数13.operator经常和C++的一个运算符连用,构成一个运算符函数名.运算符函数的返回类型不能是( )A.voidB.charC.intD.float14.下面是对C++运算符的叙述, 正确的叙述是( )A.只有类运算符 B.只有友元运算符C.同时具有类运算符和友元运算符 D.同一个运算符只能重载一次15.在面向对象的设计中,一切都是围绕着什么展开的( )A.类B.结构C.数据类型D.对象16.下面哪项不能算是面向对象程序设计所具有的显著特点( )A .封装 B.继承 C.抽象 D.递归17.下面选项中哪一项不是结构和类的共同特性( )A.对象能够用作数组的元素 B.在缺省情况下, 成员是私有的C.对象之间能够相互赋值 D.能够说明指向对象的指针和引用18.下面有关类性质说法错误的是( )A.一个类能够有多个构造函数,但只有一个析构函数B.析构函数和构造函数都不能有返回类型C.不能够给析构函数指定参数D.一个类中不能够说明具有类类型的数据成员19.下面叙述不正确的是( )A.成员的访问能力取决于派生方式B.基类的私有成员在公有派生类中不可访问C.对象能够访问所有成员D.公有基类成员在保护派生中保护的20.成为抽象类的一个条件是这个类( )A.至少有一个纯虚函数 B.至少有一个虚函数C.只含有一个纯虚函数 D.只含有一个虚函数21.下列叙述正确的是( )A.有1个运算符不能被重载 B.有2个运算符不能被重载C.有3个运算符不能被重载 D.有4个运算符不能被重载22.在以下选项中, 不属于模板特点的选项是( )A.处理数据时, 处理的是不同类型的相同操作B.声明不需要给出数据类型C.对于相同的数据类型产生不同的实例D.对于不同的数据类型能够产生不同的实例23.经过什么建立类树( )A.类B.虚函数C.多重继承D.单一继承24.C++使用新的分配动态内存的函数是( )A . malloc ( ) B. free( ) C. delete D. new 25.以下关于C+ +对象特点叙述不正确的是( )A、对象能够进行四则运算 C、对象能够用作数组的元素C、对象能够用作函数参数D、对象之间能够相互赋值26.有关复制构造函数说法错误的是( )A.复制构造函数不能使用初始化列表B. 复制构造函数不能有返回值C. 复制构造函数名与类名相同并能够有多个复制构造函数D. 复制构造函数的参数能够为引用对象27.对友元函数描述正确的是( )A.一个类的友元函数是该类的一个特殊成员函数B.一个类的友元函数能够访问类的所有数据成员C.友元函数只允许访问该类对象的私有成员D.友元函数只允许访问该类的公有成员28.进行文件操作时需要包含的头问家是( )A.iostream.h B. fstream.h C.stdio.h D. stdlib.h29.下面关于类模板叙述不正确的是( )A.声明类模板”; ”号结束B.不能重载运算符C.能够使用友元函数D.能使用虚函数30.系统不会为类自动建立什么成员函数( )A.默认构造函数 B.默认析构函数C.默认虚析构函数D.默认赋值运算赋二、填空题:1.函数 int * func(void)的返回类型是__ _ __.2.C+ +中, 关键字用作联合.3.关键字virtual能够用来声明类.4.抽象类至少要含有一个 ,这种函数属于虚函数5.成员函数”void print( )const;”是类的函数, 它只能被const对象调用。
面向对象程序设计总复习资料
面向对象程序设计总复习( _ 夏)复习之一、对照书本( 或上课课件)上, 搞懂有关概念【第0-1 章】1. 面向对象程序设计是不同于传统程序设计的一种新的程序设计范型。
它对降低软件的复杂性, 改进其重用性和维护性, 提高软件的生产效率, 有着十分重要的意义。
因此面向对象的程序设计被认为是程序设计方法学的一场实质性的革命( 在导学中) 。
2. 面向对象( O-O) 程序设计是一种新的程序设计范型。
这种范型的主要特征是:程序=对象+消息面向对象程序的主要结构特点是:第一, 程序一般由类的定义和类的使用两部分组成;第二, 程序中的一切操作都是经过向对象发送消息来实现的, 对象接收到后, 启动有关方法完成相应操作。
3. 现实世界中, 对象一般能够表示为: 属性+行为现实世界中的对象, 具有以下特性:(1) 每一个必须有一个名字以区别于其它对象;(2) 用属性来描述对象的某些特征;(3) 有一组操作, 每组操作决定对象的一种行为;(4) 对象的行为能够分为两类: 一类是作用于自身的行为, 另一类是作用于其它对象的行为。
4. 在现实世界中, 类是一组具有相同属性和行为的对象的抽象。
类与对象的关系是抽象和具体的关系。
在C++面向对象的程序设计中,把类中的属性称为数据(数据成员) , 类中的操作是用函数( 函数成员) 来实现的。
5. 面向对象程序设计的基本特征: 抽象性、封装性、继承性和多态性(1) . 抽象是经过特定的实例( 对象) 抽取共同性质后形成概念的过程。
(2) . 在面向对象程序设计中, 封装是指把数据和实现操作的代码集中起来放在对象内部, 并尽可能隐蔽对象的内部细节。
(3) . 继承机制允许派生类继承基类的数据和操作(即数据成员和成员函数), 也就是说, 允许派生类使用基类的数据和操作。
同时派生类还能够增加新的操作和数据。
从继承源上分, 继承分为单继承和多继承。
(4) . 面向对象系统的多态性是指不同的对象收到相同的消息时产生多种不同的行为方式。
面向对象复习资料
面向对象复习资料复习资料模拟题一一、单项选择题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.对象的三大基本特性是多态性、___ ____、封装性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对话框的两种形式:模态非模态
定义对象是调用类的构造函数,释放对象时调用类的析构函数
重载是指同一个函数名,但是参数个数或参数类型不同的一组函数
在MFC框架应用程序中,视图类通过OnDraw成员函数完成绘制操作
面向对象程序设计的三个主要特点是:封装继承多态
线程可以分为用户界面线程工作者线程两种
根据其存储属性不同,类的数据成员可以分为:静态数据成员,动态数据成员
类成员的访问控制有:public protected private三种
函数参数传递的三种方式是:值指针引用
操作符可以重载为类的友元函数和成员函数两种
动态链接库的入口函数名称是dllmain
MFC单文档程序的四个主要类是:CView CDocment CApp CMainframe
MFC应用程序中,用户自定义消息的编号必须从WM_USER 开始
C++程序的编译链接过程中,对函数的调用处理分为:静态绑定动态绑定
MFC中三种常用的GDI对象:CPen CBrush CBitmap
为支持序列化,对象所属类必须从CObject派生
标准的Windows消息必须以WM 命名
线程同步的方法:原子访问互锁函数关键代码
使用设备上下文对象的两种方法:SelectStockObject() SelectObject()
MFC声明、开始、结束消息映射的宏是:DECLARE_MESSAGE BEGIN_MESSAGE END_MESSAGE MFC的应用程序根据其结构可以分为:SDI MDI Dialog三种
拷贝构造函数的形参必须是引用参数
编译过程中产生错误的原因是:语法错误、上下文关系错误
类和对象的关系可表述为:类是对象的抽象,对象是类的实例
只保留公共基类的一个复制,就必须用关键字Virtual声明为虚基类(消除二义性)
如果一个类包含一个或者多个纯虚函数,则该类称为抽象类
C++的两种代码复用方式:继承组合
一个类可以定义多个构造函数,但是只能定义一个析构函数
静态对象只能被构造一次
析构函数的作用是:在对象被系统释放之前做一些内存清理工作。
winmain函数的主要功能?
答:注册窗口类,创建主窗口,显示主窗口,进入消息循环,遇到WM_CLOSE消息退出。
windows应用程序的运行机制?
答:①找到入口函数WinMain()②声明并设计窗口类对象Instance()③注册窗口④创建窗口⑤显示窗口⑥定义消息⑦消息循环run()⑧遇到WM_CLOSE消息退出
消息处理:(基本同上,加上右句)调用WndProc消息函数:处理各种消息
消息处理机制:通过宏定义将消息分派到不同的成员函数进行处理的机制
While(GetMessage(&msg,NULL,0,0))
{ TranslateMessage(&msg);
Dispatch Message(&msg) }
windows应用程序的启动过程?
答:①Windows将程序载入内存②构造全局对象theApp ③Windows调用全局函数WinMain() ④WinMain寻找唯一的一个CWinApp的派生类的对象⑤WinMain调用theAPP 的Instance()函数⑥重写的Instance()启动载入文档并显示主框架窗口和视图窗口的进程⑦Winmain调用theApp的run()函数,进入消息循环⑧遇到WM_DESTROY消息退出
对话框的创建过程?
答:①添加对话框资源②为新加入的对话框资源添加类③声明该对话框类的对象,并添加该类的头文件④调用该类的DoModal函数来激活模式对话框,或者先调用Create函数,然后调用ShowWindow函数来激活非模态对话框。
打印处理及相关函数:
答:①OnPreparePrinting()设置页码;②OnBeginPrinting()创建GDI对象③OnPrepareDC()设置映射模式④OnPrint()具体完成打印⑤OnEndPrinting()删除GDI对象
消息路由过程?
SDI程序:View Document Mainframe Application
MDI程序:View Document Childframe Mainframe Application
自定义消息流程:
答:①在头文件中定义消息#define WM_USERMESSAGE WM_USER+1
②在头文件的DECLARE_MESSAGE_MAP()语句之前的一对AFX_MSG之间添加消息处理函数原形afx_msg void OnProcName(WPARAM wParam, LPARAM lParam); ③在实现文件的BEGIN_MESSAGE语句之后,在一对AFX_MSG_MAP之间添加消息映射宏ON_MESSAGE(WM_USERMESSAGE,OnProcName) ④在实现文件中给出消息处理函数的具体实现
坐标映射方式
答:①设备坐标:以像素表示的坐标值②逻辑坐标:当前映射方式下的坐标值③映射方式:逻辑坐标和设备坐标之间的比例关系
文档和视图交互的函数:
答:文档保存数据,视图显示和编辑数据;CView::GetDocment得到对应的文档对象;CDocument::UpdateAllViews更新所有的视图对象; CView::OnUpdate由框架调用响应UpdateAllViews调用; CView::OnInitialUpdate视图初始化; CDocument:: OnNewDocument新建文档对象时调用。
串行化:
答:①使类成为可串行化的类②DECLARE_SERIAL(类名),IMPLEMENT_SERIAL(类名,基类名,模式号) ③编写一个Serialize()函数④在派生类的Serialize()函数中调用基类的Serialize()函数,如果基类不是CObject,则不必调用⑤Serialize(Carchive &ar)的参数是一个归档类对象的引用⑥归档类重载了插入和提取操作符。