2019级面向对象技术复习提纲-10页文档资料
2019级面向对象技术复习提纲-5页文档资料
![2019级面向对象技术复习提纲-5页文档资料](https://img.taocdn.com/s3/m/9297f9e15022aaea998f0f61.png)
2019级面向对象技术复习提纲概念部分1 理解面向对象的思想(封装性、继承性、多态性),作出一个简述。
2 理解多态性的概念和应用,理解动态绑定机制。
3 什么是用例图,用例图有哪些部分组成。
用例图中参与者之间的关系有哪些?用例之间的关系有哪些?4 试描述用例图在UML中的地位和作用。
5 掌握用例模型的获取方法。
6 用例之间的扩展、泛化、包含三种关系有什么异同,请分别举例说明。
7 对象与类的概念;类图有哪些元素构成?类之间的关系有哪些?掌握UML中类图的绘制方法。
8 简述类的聚合和组合关系的异同点。
9在绘制类图时,第一步就是发现类,最常用的方法是什么?请简要说明它的使用方法。
10什么是实体类、边界类和控制类?为什么将分析类划分成这三种类型。
11理解对象图的概念,对象图的适用场景以及它的优缺点。
12互图(时序图与协作图)的概念与作用,掌握其的绘制方法。
13、状态图概念与作用,掌握活动图、状态图的绘制方法。
14类的设计原则包括哪些内容?15 包图与组件图的概念,掌握包图的设计原则,包括稳定性和抽象度的衡量方法。
16掌握设计模式、软件复用的概念,掌握所介绍的各种设计模式(单实例、工厂、适配器、对象装饰、桥接、职责链、策略等)的用途,类图,以及相关实例。
综合部分17观察一部电梯的运行方式,并用状态图描述它的各种状态(简化为“第一层”、“向上运动”、“向下运动”、“等待”、“运动到第一层”五种状态)和可能转移。
18简单的数字钟包含两个按钮A和B,系统启动后进入显示时间(时、分、秒)状态。
在显示时间状态下按钮A用于切换显示时间->设置小时->设置分钟->显示时间等状态;在设置小时、设置分钟状态下按B键用于修改时间。
试画出其状态转换图。
19 用状态图描述顾客在A TM机上的操作过程。
A TM机主要包括等待顾客插入磁卡的起始状态和结束服务的终止状态,以及输入密码、选择服务类型、存款及取款等状态。
顾客插入磁卡后进入输密码状态,当密码输入正确时进入选择服务类型状态,当输入密码不正确时,停留在原状态,但如果三次不正确,服务结束。
面向对象程序设计复习提纲
![面向对象程序设计复习提纲](https://img.taocdn.com/s3/m/83df20ec19e8b8f67c1cb964.png)
面向对象程序设计复习1. 函数重载是指两个或两个以上的函数取相同的函数名,但形参的个数或类型不同。
2.若有指针p指向变量x,则*p与x的表示是等价的。
3.假定AA为一个类,a为该类公有的数据成员,若要在该类的一个成员函数中访问它,则书写格式为a。
4.执行int *p= new int[10]操作,使p指向的元素可表示为p[0](或*p )5.除了能通过构造函数的函数体内赋值语句对数据成员实现初始化外,C++还提供一种初始化数据成员的方法参数初始化表。
6.假定p所指向对象为25,p+1指向对象为42,则执行*p++运算后,p所指向对象值为42.7.在调用成员函数时,this指针被初始化成被调函数所在类的对象的地址。
8.为了使指针值始终保持为初始值,可以将指针变量声明为const型(常指针)9.静态数据成员可以初始化,但只能在类体外进行初始化。
10.私有继承中,基类中的保护成员在私有派生类中的访问属性是私有11.预处理命令在程序中都是以#符号开头的。
12.当一个函数调用表达式只能与一个模板函数相符合时,将首先根据模板函数生成一个实例函数,然后再调用它执行。
13.假定用户没有给一个名为AB的类定义析构函数,则系统为其隐含定义的析构函数为~AB(){}14.派生类的成员函数不能直接访问基类的私有成员。
15.若需要定义基类中的一个成员函数为虚函数,则必须在函数头的开始使用virtual保留字。
16.为了实现运算符重载,必须定义一个叫做operator的运算符函数。
17.Time为类名,有定义void Time::fun()const,fun称为常成员函数18.对象的指针就是对象空间的地址19.保护继承中,基类中的公用成员在保护派生类中的访问属性是保护20.假定p所指向对象为2,p+1指向对象为3,则执行*++p运算后,p所指向对象值为3 完成程序题31.下列函数的功能是实现两个数的最小公倍数,请填空:#include<iostream>_ ①_;using namespace stdint lcd(int x,int y){②;}return x*y/hcf(x,y)32. 下面函数的功能是:统计子字符串substr在字符串str中出现的次数。
面向对象程序设计Java复习提纲
![面向对象程序设计Java复习提纲](https://img.taocdn.com/s3/m/5d101e216bec0975f565e202.png)
实用文档Unit1:1.面向对象中类的概念:类是创建对象的模版,定义了对象的属性和方法;类中的属性赋予确定的取值得到该类的一个对象,对象是类的实例。
2.阐述类属性和操作的概念和作用?属性:已被命名的类的特性,描述对象的特征操作:是类的特征,用来定义如何激活该类对象的行为,类操作是对类属性的处理3.面向对象中对象的概念所要解决的现实世界的问题抽象为软件对象;需求描述问题域中拥有属性的实体或概念都可以看做对象。
4.阐述类与对象的联系类是一组对象的描述类是创建对象的模板,对象是类的实例类是一种数据类型,可以使用类名称声明对象变量5.阐述类与对象的区别抽象和具体,模板与实例6.类是否是数据类型?与你学过的其他类型进行比较,有何不同?类是一种数据类型,称之为对象类型,所以可以使用类名称声明对象。
类可以包含多个数据类型。
7.变量UML类图中类及其类中属性和方法如何表示?类名,类属性,类方法,各占一行8.UML类图中类与类之间的继承关系如何表示?其代表的含义是什么?实心线空心箭头;指一个类自动拥有另一个类的所有数据和操作。
9.UML类图中类与类之间的关联关系如何表示?其代表的含以是什么?实用文档单向为实心箭头,双向为实心直线;指一个类拥有另一个类的一到多个对象10.如果UML类图中类A与类B之间是1对多的关联关系,关联属性的数据类型是什么?类B对象的容器类型11.如果UML类图中类与类之间1对1的关联关系中,关联属性的数据类型是什么?被关联类的对象类型12.根据用户需求,建立面向对象设计方案—UML类图的方法和步骤是什么?分析需求,找出类,类之间的关系,类的属性,定义类的方法,绘制类图13.一般情况下,每个类都应该提供哪些常用的方法?增删改查,add, remove, set, get14.一般情况下,包含容器的类应该提供哪些常用的方法?获取容器,返回容器迭代器或迭代器接口Unit2:1.撰写java类的具体语法2.根据Java类,Java对象变量如何声明?Java对象如何创建与使用?类名变量名(参数); new方法3.什么是Java引用(变量),其内涵是什么?地址,其值指向对象所在内存中的位置。
面向对象程序设计技术复习考试纲要
![面向对象程序设计技术复习考试纲要](https://img.taocdn.com/s3/m/ed678eb06bec0975f465e24e.png)
2019年1月21日5时49分
面向对象程序设计技术复习
3
1.关于C和C++语言的理解
• (2)面向对象的程序设计语言必须具备的关 键要素是
– 抽象 – 封装 – 继承 – 多态性
2019年1月21日5时49分
面向对象程序设计技术复习
4
1.关于C和C++语言的理解
• (3)常量与变量
– 变量必须先定义或说明,后引用 – 常量不能作为左值使用 – 常量、变量的引用定义必须初始化
• 原型相同的派生覆盖准则与二义性排除 (作用域限定)的理解
2019年1月21日5时49分
面向对象程序设计技术复习
26
4.常量成员及其引用、静态数据成员
• 常量成员的初始化与引用的理解
• 静态数据成员共享规则与访问规则的理解 • 静态数据成员类外初始化的格式的理解
2019年1月21日5时49分
面向对象程序设计技术复习
2019年1月21日5时49分
面向对象程序设计技术复习
17
4. 类间的关系
• (1)友元
– 是类与类的关系或者类与外部函数、另一类的 成员函数的关系 – 一个类可以作为另一个类的友元类 – 友元关系不能继承 – 类的友元函数可以直接访问该类的所有成员 – 可提高程序的运行效率,但会破坏类的封装性 – 友元函数不是类的成员函数
2019年1月21日5时49分 面向对象程序设计技术复习 21
4. 类间的关系
• (3)虚基类
– 设置虚基类的目的是消除二义性,只生成公共 虚基类的一份拷贝 – 带有虚基类的多层派生类构造函数的成员初始 化列表中都要列出虚基类的构造函数,但对虚 基类的子对象初始化只有最后一次生效
面向对象的程序设计复习资料
![面向对象的程序设计复习资料](https://img.taocdn.com/s3/m/fe2a0f0ca66e58fafab069dc5022aaea998f41b5.png)
⾯向对象的程序设计复习资料⾯向对象复习资料·········⼀、名词解释1、软件⼯程——建⽴在系统化、规范化、数量化等⼯程原则和⽅法上的,关于软件开发各阶段的定义、任务和作⽤的⼯程学科。
包括软件开发技术、软件项⽬管理两⽅⾯内容。
2、模型——对现实的简化,提供系统的蓝图,包含架构[总体]设计和组件[详细]设计;包含重要的因素忽略不相⼲的细节;⼀个系统可以从不同视⾓使⽤不同模型进⾏描述;模型可以是架构的[侧重于组织]、也可以关注⾏为[系统的动作]3、对象——现实世界中具有静态特征和动态特征的某个具体的实际事物。
4、封装——把属性和操作封在⼀个对象⾥,不允许外界直接存取和使⽤。
包含属性与⾏为的结合和信息屏蔽两层含义。
5、消息——向对象发出的[服务]请求,包括服务的对象标识、服务标识、输⼊信息和回答信息等。
定义对象之间单路通信,是从发送⽅到接收⽅的控制流,激发某操作、唤醒信号或导致对象的创建或撤消。
⽤箭头表⽰,符号见表6、继承——派⽣类或⼦类⾃动拥有基类或⽗类的全部属性和操作的类创建⽅法7、多态——同⼀操作作⽤于不同对象,有不同解释或不同的执⾏结果。
两种——编译时、运⾏时;3实现⽅式——接⼝、继承、抽象类。
8、UML——⼀种功能强⼤的、⾯向对象的可视化系统分析的建模语⾔[对⾯向对象系统进⾏可视化、详述、构造和⽂档化的⼯具,已成为软件建模的⼯业标准。
] 9、视图——从某个⽅⾯或⾓度出发描述系统,或表达系统某个⽅⾯特征的⼀个或多个图。
10、动作事物——时间、空间上的动作,模型的动词;最基本的是交互与状态机11、交互——⼀组对象在特定上下⽂、为达到特定⽬的进⾏⼀系列消息交换组成的动作,要列出每个操作的消息、动作次序、连接关系。
12、状态——13、⽤例——14、事件流——15、对象关联——16、可见性——描述属性和操作是否可被其他类引⽤17、活动——对象被占⽤以完成某任务,⽤矩形条表⽰。
面向对象程序设计 复习资料
![面向对象程序设计 复习资料](https://img.taocdn.com/s3/m/a60e8a6fa8956bec0875e320.png)
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)封装:是指对象在其操作中隐藏属性。
它是一种信息隐蔽技术,用户只能看见对象封装界面上的信息,对象的内部实现对用户是隐蔽的。
封装的目的是使对象的使用者和生产者分开,使对象的定义和实现分开。
例如:要从同事那里借钱,在商店购买食物,就不会抢夺同事的钱包,大翻一通,看看里面是否有足够的钱。
而应该询问他们是否可以借你一些钱,他们就会自己翻钱包。
以表示圆的一个对象作为封装的例子。
圆的操作应能计算出半径、直径、周长和面积。
假定选择存储直径,要访问直径的程序员都会选择存储直径属性,而不是通过“获取直径”的操作来访问。
面向对象程序设计复习提纲
![面向对象程序设计复习提纲](https://img.taocdn.com/s3/m/5623f97b1711cc7931b7163d.png)
面向对象程序设计各章节重点题型1、选择题(每题2分,共20)2、填空题(每空1分,共30)3、判断题(每题3分,共15分)4、程序阅读及修改题(共15分)5、程序编写题(共20分)覆盖内容:课件、实验、作业第一章概述1、程序设计语言分类2、程序设计方法的发展过程3、面向对象的基本概念对象;类;类的封装、继承、多态4、面向对象的软件工程5、翻译程序的分类第二章C++简单程序设计1、C++语言的特点2、程序结构编译器在对源程序进行编译之前,前行要由预处理程序对源程序进行预处理。
所有的预处理指令在程序中都是以“#”来引导,每条预处理指令单独占用一行,不用分号结束。
程序由语句组成,以空格和换行来区分词法单位,每条语句由分号“;”作为结束符。
“endl”是C++输出时的控制符,作用是换行,与“\n”作用相同。
C++标准库中的类和函数都是在命名空间std中声明的,因此,程序中需要使用C++标准库中的相关内容时,需要用“using namespace std”语句进行声明,否则在指令前加前辍“std::”。
程序由语句组成,以空格和换行来区分词法单位,每条语句由分号“;”作为结束符。
标识符cout为输出流对象,“<<”为插入运算符,将操作符后的内容输出到标准输出设备(显示器)上。
标识符cin为输入运算符,“>>”为提取运算符,将从标准输入设备(键盘)上输入的数据输入到操作符后的变量中。
C++换行控制符为endl,其作用与“/n”相同。
头文件的使用:当使用标准输I/O流操作时,需要包括头文件:iostream.h;如果需要控制输出数据的特殊格式,需要包括头文件:iomanip.h;若需要对字符串进行操作,需要包括头文件:string.h;若需对文件进行操作,需要包含fstream.h 等。
3、数据数据类型C++中的数据数据类型大体上可以分为5种:基本类型、空类型、构造类型、指针类型、类类型;变量的存储类型有四种:auto(自动)、register(寄存器)、extern (外部)、static(静态)。
面向对象程序设计复习提要(不重要)
![面向对象程序设计复习提要(不重要)](https://img.taocdn.com/s3/m/1a4e0599370cba1aa8114431b90d6c85ec3a88dd.png)
线程优先级
设置线程优先级,但需要注意 公平性和性能问题。
线程池
使用线程池管理线程,避免频 繁创建和销毁线程。
数据库访问技术
ORM框架
使用ORM框架(如SQLAlchemy)进行数 据库操作,实现面向对象的数据库访问。
SQL查询
编写SQL查询语句,执行数据库操作。
事务处理
使用事务处理保证数据一致性。
模板方法模式
模板方法模式是一种行为型设计模式,它在一个方法中定义了一个算法的骨架,将某些步骤延迟到子 类中实现。模板方法模式可以用来创建可复用的算法框架,使得子类可以在不改变算法结构的情况下 定制自己的行为。
模板方法模式的主要组成部分包括模板方法、抽象类和具体实现类。模板方法定义了算法骨架,抽象 类提供了模板方法的框架,具体实现类则提供了算法的某些步骤的具体实现。
里氏替换原则有助于确保程序中 的逻辑正确性和稳定性,防止因 使用不合适的对象而导致的错误 或异常。
应用
实现里氏替换原则的方法包括遵 守继承的语义、使用设计模式等, 通过这些方式确保子类能够正确 地实现基类的行为和功能。
依赖倒置原则
要点一
定义
依赖倒置原则(Dependency Inversion Principle)是面向对象设计 的基本原则之一,它主张高层模块不应 该依赖于低层模块,它们都应该依赖于 抽象;抽象不应该依赖于细节,细节应 该依赖于抽象。
异常处理
捕获异常
使用try-except语句捕获和处理异常。
抛出异常
使用raise语句抛出异常。
自定义异常
通过继承内置的Exception类来自定义异常。异常链在异常对来自中包含原始异常,以便于调试和跟踪。
多线程编程
【免费下载】面向对象复习提纲
![【免费下载】面向对象复习提纲](https://img.taocdn.com/s3/m/71479472453610661ed9f4c7.png)
2.GUIFactory 实例在用来创建窗口组件之前、所需视感标准确定之后创建。 ·依据用户输入不同,建立多视感标准: GUIFactory* guiFactory; const char* styleName = getenv(“LOOK_AND_FEEL”); //用户的输入,比如环境变量之类 的 if(strcmp(styleName, “Motif”) == 0){
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内 纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
面向对象技术复习纲要
![面向对象技术复习纲要](https://img.taocdn.com/s3/m/ec8e31592e3f5727a5e962c8.png)
面向对象技术复习纲要本纲要以设计模式与设计原则为主要内容,很多概念性内容请参考其他课本。
Part Ⅰ面向对象基础1.基本思想:要点1:任何事物都是对象,对象有属性和方法。
复杂对象可以由相对简单的对象以某种方式构成。
要点2:通过类比发现对象间的相似性,即对象间的共同属性,是构成对象类的依据。
要点3:对象间的相互联系是通过传递“消息”来完成的。
通过对象之间的消息通信驱动对象执行一系列的操作从而完成某一任务。
2.基本概念a)对象类动态绑定消息传递b)特性:封装性继承性多态性3.优点:模块化,信息隐藏与抽象;自然性;并发性;重用性4.面向对象的设计支柱:封装、继承、多态5.静态类型语言与动态类型语言(变量类型声明)6.静态类与动态类反多态:父类转换为子类7.多继承与名称二义性解决方案:重定义8.重载与重写9.重写与遮蔽比较:改写、遮蔽、重定义10.纯多态11.模板方法与模板类12.框架Part Ⅱ设计模式与设计原则一、设计原则a)抽取变化:找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。
b)针对接口:针对接口编程,而不是针对实现编程。
c)多组合少教程:多用组合,少用继承。
d)松耦合:为了交互对象之间的松耦合设计而努力。
e)开闭原则:类应该对扩展开放,对修改关闭。
f)依赖倒置原则:要依赖抽象,不要依赖具体类。
g)最少知识原则:只和你的密友谈话。
h)好莱坞原则:别调用(打电话给)我们,我们会调用(打电话给)你。
i)单一责任:一个类应该只有一个引起变化的原因。
二、设计模式概览a)策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
b)观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。
c)装饰者模式:动态地将责任附加到对象上。
若要扩展功能,装饰者提供了比继承更有弹性的替代方案。
面向对象程序设计复习资料
![面向对象程序设计复习资料](https://img.taocdn.com/s3/m/d336eac76c175f0e7dd13794.png)
面向对象程序设计复习资料第2章面向对象思维建立面向对象程序设计的特征:①模块化;②抽象化;③封装;④可组合;⑤继承;⑥软件持续使用时间更长。
面向对象思维分为两步:一是需求分析,识别出有哪些对象,它们分别做什么事(who&&what);二是如何利用对象协作完成一件完整的事情(how)。
·类与对象的概念和关系:1)类是面向对象程序设计方法的核心,利用类可以实现对数据的封装和隐蔽。
在面向对象程序设计中,程序模块是由类构成。
类是对逻辑相关的函数与数据的封装,它是对问题的抽象描述。
C++的语法提供了对自定义类型的支持,这就是类。
正如基本数据类型中隐含的数据和操作,因此在定义一个类时也要说明数据和操作。
2)类实际上是一种抽象机制,它描述了一类为问题的属性和行为,即类描述了一类对象的数据存储和操作特征。
每一个怪物都有一些共同的静态特征,这些共同的特征抽象到类中,统称为该类的属性,属性通过声明普通变量来实现。
每一个怪物都有一些共同的动态行为,这些共同的行为抽象到类中,统称为该类的操作,操作通过声明普通变量来实现。
怪物类伪类图:第3章面向对象思维建模UML:统一建模语言或标准建模语言1)类图:常见的UML图,显示了建模的静态结构,特别是模型中存在的类、类的内部结构以及他们与其他类的关系等。
类与类之间的常见关系:①依赖关系:依赖关系的偶然性和临时性——人依赖船②聚合关系:整体与部分之间是可分离的③继承关系:含义:儿子类继承父亲类,不仅继承所有属性和行为,还自己拓展2)时序图:也称为序列图或循序图或顺序图,是一种UML交互图,它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。
类图表示“不因时间而变化的部分(静态关系)”;时序图表示“随时间而变化的部分(动态行为)”时序图的元素组成和绘制流程:对象:类的实例;三种状态——激活、运行、销毁生命线:对象在一段时间内的存在激活:对象操作的执行消息:对象之间的通信机制(五类:递归调用、普通操作、返回消息、导步调用)3)用例图:指由参与者、用例以及他们之间的关系构成的用于描述系统功能的视图。
面向对象程序设计(Java)复习提纲
![面向对象程序设计(Java)复习提纲](https://img.taocdn.com/s3/m/02c8a818366baf1ffc4ffe4733687e21af45ff74.png)
面向对象程序设计(Java)复习提纲Unit1:1.面向对象中类的概念:类是创建对象的模版,定义了对象的属性和方法;类中的属性赋予确定的取值得到该类的一个对象,对象是类的实例。
2.阐述类属性和操作的概念和作用?属性:已被命名的类的特性,描述对象的特征操作:是类的特征,用来定义如何激活该类对象的行为,类操作是对类属性的处理3.面向对象中对象的概念所要解决的现实世界的问题抽象为软件对象;需求描述问题域中拥有属性的实体或概念都可以看做对象。
4.阐述类与对象的联系类是一组对象的描述类是创建对象的模板,对象是类的实例类是一种数据类型,可以使用类名称声明对象变量5.阐述类与对象的区别抽象和具体,模板与实例6.类是否是数据类型?与你学过的其他类型进行比较,有何不同?类是一种数据类型,称之为对象类型,所以可以使用类名称声明对象。
类可以包含多个数据类型。
7.变量UML类图中类及其类中属性和方法如何表示?类名,类属性,类方法,各占一行8.UML类图中类与类之间的继承关系如何表示?其代表的含义是什么?实心线空心箭头;指一个类自动拥有另一个类的所有数据和操作。
9.UML类图中类与类之间的关联关系如何表示?其代表的含以是什么?单向为实心箭头,双向为实心直线;指一个类拥有另一个类的一到多个对象10.如果UML类图中类A与类B之间是1对多的关联关系,关联属性的数据类型是什么?类B对象的容器类型11.如果UML类图中类与类之间1对1的关联关系中,关联属性的数据类型是什么?被关联类的对象类型12.根据用户需求,建立面向对象设计方案—UML类图的方法和步骤是什么?分析需求,找出类,类之间的关系,类的属性,定义类的方法,绘制类图13.一般情况下,每个类都应该提供哪些常用的方法?增删改查,add, remove, set, get14.一般情况下,包含容器的类应该提供哪些常用的方法?获取容器,返回容器迭代器或迭代器接口Unit2:1.撰写java类的具体语法2.根据Java类,Java对象变量如何声明?Java对象如何创建与使用?类名变量名(参数); new方法3.什么是Java引用(变量),其内涵是什么?地址,其值指向对象所在内存中的位置。
面向对象程序设计(Java) 复习提纲
![面向对象程序设计(Java) 复习提纲](https://img.taocdn.com/s3/m/f646d427ed630b1c59eeb5bd.png)
Java复习提纲1. 基础知识1)Java源代码文件后缀名为.java,编译后生成的字节码文件后缀名为.class2)Java中的变量名由三种类型的字符:字母、数字和下划线组成,且数字不能作为变量名首字母。
3)Java中的变量名一般首字母小写,类名首字母大写,包名首字母小写。
4)一个Java源文件中可以定义多个类,但只能有一个是public的。
5)JDK安装后,会有两个可执行程序文件java.exe、 javac.exe,其中java.exe是用来运行Java程序的,javac.exe是用来编译Java源代码的。
6)Java程序中,要结束程序退出,并且设置结果状态为-1,应该调用System.exit(-1);如果没有调用这个函数,那么程序最终退出时,退出值为0。
7)abstract类中可以有abstract和普通(非abstract)的方法;普通类中则只能有普通方法,不能有abstract方法。
8)int[] a = null; a[0]=77; 会引起NullPointerException。
9)String s = (String) new Object(); 会引起ClassCastException。
『父类不能强制转换成之类』10)Java中Object类是最顶层的类,是所有类的父类(也叫超类)。
11)使用instanceof运算符可以判断一个对象是否是某个类。
2. 名词解释1)JVM『Java虚拟机简称JVM,是运行所有Java程序的抽象计算机,包含Java解释器。
JVM实现了Java程序的跨平台运行。
』2)JRE和JDK『Java运行时环境简称JRE,Java开发工具的一个子集。
由想要重新分布JRE的终端用户和开发者使用。
JRE包括Java虚拟机、Java核心类及支持文件。
Java开发工具集简称JDK,用Java编写applet和应用程序的软件开发环境。
它比JRE多了开发工具和API。
C++面向对象 复习提纲
![C++面向对象 复习提纲](https://img.taocdn.com/s3/m/9346c835a32d7375a417806f.png)
C++面向对象部分考试复习提纲1.面向对象的三大特点:封装、继承、多态一、类1.class A{…}↓数据、数据操作封装在一起访问属性构造函数:类名()析构函数:~类名()(有3种:private【私有】;public【公有】;protected【保护】)缺省构造函数(即:没有参数的构造函数)拷贝构造函数A(A&A)补充:①inline f();函数名前面加上inline,可以令函数变为内联函数。
一般只有在函数成员的代码比较少的情况下才把函数设置为内联函数。
②友元friend f()③静态数据成员:④构造函数:完成对象的初始化。
函数名与类名相同,无返回值。
可以重载。
⑤拷贝构造函数:用已知对象去初始化一个新的对象。
⑥静态数据成员:是属于类的。
Lgw:①:在缺省条件下类中成员访问修饰符是private【私有】。
②:友元函数的使用:class A{...friend void fun(...); //说明函数fun( )是类A的友元函数...};void fun(...){class A a; //于是在此函数中,... //可以直接访问类A的私有成员}③静态数据成员的使用:class Sample{private:int a, b, c ;static int d ; // 定义静态数据成员……} s1, s2, s3;int Sample::sum = 0; //静态数据成员的初始化必需在类体外进行④关于友元函数的几点说明:①友元函数不是类的成员函数。
因此,对友元函数指定访问权限无效,可以把友元函数的说明放在private、public、protected 的任意段中。
②使用友元函数的目的是提高程序的运行效率。
③慎用友元函数,因为它可在类外直接访问类的私有或保护成员,破坏了类的信息隐藏的特性。
二、继承与派生父(基类)子(派生类) ↓派生类定义Class B :public A {…};单继承 多继承 A A B B C C 重点:①构造函数 ②基类成员在派生类中访问属性可能发生变化 二义性问题A f () A f ()BC DB:f () C:f () Class B ():A () {…}构造函数Lgw :①在C++中,有两种继承方式:单一继承和多重继承。
C 面向对象程序设计复习提纲
![C 面向对象程序设计复习提纲](https://img.taocdn.com/s3/m/0383e962a8956bec0975e39e.png)
第一章 C++的初步知识
• • • • • 1.1 1.2 1.3 1.4 1.5 从C到C++ C++语言的词法和词法规则 最简单的C++程序 C++对C的扩充√ C++程序的编写和实现
5.5.1 简单的派生类的构造函数
• 何为简单派生类? 只有一个基类,只有一级派生; 派生类数据成员中不包含基类的对象(子对象)。 • 构造函数格式:
派生类名::派生类名(基类所需的形参,本类成员所
需的形参):基类名(基类参数表)
{ 本类成员初始化赋值语句; }; 说明:基类所需的形参,基类参数表 一一对应
3.1构造函数
• • • • • • 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 对象的初始化 确定对象的初始状态 构造函数的作用 带参数的构造函数 用参数初始化表初始化数据成员 构造函数的重载 使用默认参数的构造函数
3.1.2构造函数的作用
构造函数的作用: • 用于为对象分配空间和进行初始化。 构造函数的特点: • (1)构造函数的名字与它的类名必须相同; • (2)它没有类型,不返回值,为public类型; • (3)它可以带参数,也可以不带参数; • (4)不需要写调用语句,在系统建立对象 时由系统自觉调用执行。 • (5)如果用户没有定义构造函数,C++系 统会自动生成一个空的构造函数。
• 方法: 定义一个重载运算符函数,在需要时系统 自动调用该函数,完成相应的运算。 • 实质: 函数的重载。 • 运算符重载函数的格式: 函数类型 operator 运算符(形参表) { 重载处理 } 数据类型:是重载函数值的数据类型。 operator 是保留字
面向对象程序设计课程期末复习提要
![面向对象程序设计课程期末复习提要](https://img.taocdn.com/s3/m/d1d226e2524de518964b7d0d.png)
《面向对象程序设计》课程期末复习提要中央电大理工部计算机教研室《面向对象程序设计》课程是中央电大计算机科学与技术专业(本科)一门必修的专业基础课。
该课程主要介绍如何用C++语言进行面向对象程序设计,因此C++语言的介绍是本书的重点,也是学员需要掌握的重点。
下面按照主教材内容次序给出具体复习要求,供同学们进行期末复习时参考。
各部分复习提要第一部分程序设计基础复习知识点:C++程序的基本结构基本数据类型常量、变量的定义与使用常用运算符的使用表达式的分类和使用简单的输入输出复习要求:1.理解:C++程序的基本组成。
2.应用:能够编写简单的程序,能完成简单数据类型数据输入、利用变量存放输入数据,利用常量存放固定数据,利用运算符进行简单的运算,并能够将结果输出(如书中2.6, 2.7题)。
3.应用:能进行比较复杂的表达式运算(如书中3.1,3.2,3.3题* )。
第二部分语句与操作流程复习知识点:语句的分类分支语句循环语句转移语句复习要求:1.理解:语句按功能分为:操作运算语句和流程控制语句,其中操作运算语句按复杂程度分为简单语句和复合语句。
2.应用:能够根据程序要求选择合适的流程控制语句(如书中4.2,4.4,4.5题)。
3.应用:能够用多种循环语句实现一种循环的程序要求(如书中4.1题)。
4.综合应用:综合运用各种语句完成比较复杂的程序逻辑(如书中4.9题)。
第三部分函数复习知识点:模块化程序设计函数的定义函数的定义与函数原型函数参数的类型与传递方式全局变量和局部变量函数调用机制递归函数函数重载函数的默认参数静态局部变量复习要求:1.理解:模块化程序设计与函数的关系。
2.理解:默认参数的含义与用法,能够在程序中正确使用默认参数。
3.理解:全局变量、局部变量、静态变量的含义,能够在程序中正确选择使用静态、局部和全局变量。
4.应用:将一些功能明确的代码封装在函数中(如书中5.1,5.2,5.3题)。
5.应用:利用递归函数来简化程序设计(如书中5.7题)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2012级面向对象技术复习提纲概念部分1 理解面向对象的思想(封装性、继承性、多态性),作出一个简述。
2 理解多态性的概念和应用,理解动态绑定机制。
3 什么是用例图,用例图有哪些部分组成。
用例图中参与者之间的关系有哪些?用例之间的关系有哪些?4 试描述用例图在UML中的地位和作用。
5 掌握用例模型的获取方法。
6 用例之间的扩展、泛化、包含三种关系有什么异同,请分别举例说明。
7 对象与类的概念;类图有哪些元素构成?类之间的关系有哪些?掌握UML中类图的绘制方法。
8 简述类的聚合和组合关系的异同点。
9在绘制类图时,第一步就是发现类,最常用的方法是什么?请简要说明它的使用方法。
10什么是实体类、边界类和控制类?为什么将分析类划分成这三种类型。
11理解对象图的概念,对象图的适用场景以及它的优缺点。
12互图(时序图与协作图)的概念与作用,掌握其的绘制方法。
13、状态图概念与作用,掌握活动图、状态图的绘制方法。
14类的设计原则包括哪些内容?15 包图与组件图的概念,掌握包图的设计原则,包括稳定性和抽象度的衡量方法。
16掌握设计模式、软件复用的概念,掌握所介绍的各种设计模式(单实例、工厂、适配器、对象装饰、桥接、职责链、策略等)的用途,类图,以及相关实例。
综合部分17观察一部电梯的运行方式,并用状态图描述它的各种状态(简化为“第一层”、“向上运动”、“向下运动”、“等待”、“运动到第一层”五种状态)和可能转移。
18简单的数字钟包含两个按钮A和B,系统启动后进入显示时间(时、分、秒)状态。
在显示时间状态下按钮A用于切换显示时间->设置小时->设置分钟->显示时间等状态;在设置小时、设置分钟状态下按B键用于修改时间。
试画出其状态转换图。
19 用状态图描述顾客在ATM机上的操作过程。
ATM机主要包括等待顾客插入磁卡的起始状态和结束服务的终止状态,以及输入密码、选择服务类型、存款及取款等状态。
顾客插入磁卡后进入输密码状态,当密码输入正确时进入选择服务类型状态,当输入密码不正确时,停留在原状态,但如果三次不正确,服务结束。
进入选择服务类型后根据选择的不同,顾客可进入存款和取款状态。
存、取款结束后,顾客既可以选择结束服务到最终状态,也可以选择继续服务回到选择服务类型状态。
20. 信用卡可能处于“开放”和“关闭”状态,其中“开放”状态可以直接进入“关闭”状态,而从“关闭”状态必须提供密码验证才能进入“开放”状态,“开放”状态又包括“透支”和正常状态之间的变化,当剩余金额少于0,或者使用额度大于剩余金额,或者结算余额小于0时进入透支状态,反之则为正常状态。
画出信用卡的状态转换图。
21 用状态图描述航班机票预订系统,在没有任何预订时,系统处于“无预订”状态,有人订座后处于“部分预订”,而座位预订完后处于“预定完”状态,当航班快要起飞时,显然要“预订关闭”。
请用状态图描述其变迁过程。
22 某“订货”用例的文字描述如下:接收顾客的订单、确认订单是否已付款。
若未付款,则取消并退回订单;若已付款,则检查每个订单项。
对有货的订单项更新库存,同时向顾客发放提货单;对于缺货的订单项则向顾客发放缺货单,同时向采购人员发放采购单。
请用活动图描述这一用例。
23 掌握UML中各种模型图的作用,画法,结合“网上学生选课系统”仔细理解。
24 无向图包括点集和边集,其中边集的边连接着点集的一对点,如下图所示。
试用类模型描述无向图,只需描述其结构,不需描述其中点的位置和边的长度等信息。
25 简单有向图与无向图类似,只是边是有向的,如下图所示。
试用一个类模型描述有向图。
26 下面类图是一个图形交互编辑器的部分类图,其中sheet(页面)是Line和Box的集合,selection是选中的Line和Box的集合。
在下面的类图中没能表示一个Line或Box元素只能属于sheet或selectio之一的约束,试修改该类图,使其能表示该约束关系。
27 优化下面的类图,使其在没有确认专栏(Culumn)之前可以确定文本行(Line)在哪个页面(Page)上。
28 在下图中最上面的对象的名称是什么?该图表示的意思是什么?请绘制出与其相应的类图。
对象图实例29. 用面向对象方法建立一个现实问题的分析模型。
题目如下:学校管理系统要存储下列数据:(1)系:系名,系主任学生:学号,姓名,学生所属系教师:工作证号,姓名,教师所属系教授:研究领域研究生:专业方向课程:课程号,名称,学分(2)学生每学期要选修若干门课程,每门课有一个考试成绩;某个学期开设的某门课程只有一个任教教师;一个教师只任教一门课;一个教师有能力讲授多门课程,一门课程也可以有多位教师能够讲授;每个研究生只能跟随一位教授.试画出表示上述数据的类模型。
30. 分析下面的类图,画出新的类图,将原图中的多对多的关系转换为1:M (一对多)关系。
31. 请判断以下类图中的类关系是否合适,并说明理由。
飞机有机翼、机身、驾驶舱商店里的电器,一台电器可以是一台洗衣机,也可以不是;一台电器可以是一台电视机,也可以不是;一台电器可以是一台空调,也可以不是。
公司员工很多,包括程序员、分析员与项目经理等。
32. 仔细分析“语音邮箱系统”的“保留语音信息”和“拨打邮箱号”的用例事件流描述,请找出里面的对象,并画出时序图或协作图。
用例1:拨打邮箱号呼叫者拨打语音邮件系统的主号码;语音邮件系统发出提示音:输入邮箱号码并加#号呼叫者输入接收者的邮箱号语音邮件系统发出问候语:已进入XX的邮箱,请留言。
用例2:保留语音信息呼叫者“拨打邮箱号”呼叫者说出信息呼叫者挂断电话语音邮件系统将记录的信息存放在接收者的邮箱中。
33. 假设某高校需要建立一个档案管理系统,而你是该软件系统的负责人。
你所在的软件公司与高校一致同意系统的构建采用面向对象方法。
作为开发负责人,请你结合本课程中的学习知识,提供参考的软件体系结构设计方案,描述开发这个系统的过程,并写出开发过程的每个步骤中你认为应该用到的主要技术。
在面向对象技术中,对已有的类得特征稍作改变就可生成其他的类,这种方式称为(C)A.委托B.代C.继承D.封装类库是一种预先定义的程序库,它以程序模块的形式,按照(B)把一组类的定义和实现组织在一起:(C)对类库的建设提供了强有力的支持。
A.类的功能B.类的层次结构C.实例之间的调用关系D.类的类型A.引用B.重置C.类属类D.封装UML是一种面向对象的统一建模语言。
它包含10种图,其中,用例图展示了外部actor与系统所提供的用例之间的连接,UML中的外部actor 是指(D),用例可以用(C)图来描述。
状态图指明了对象所有可能的状态以及状态之间的迁移。
如果一个并发的状态由n个并发的子状态图组成,那么,该并发状态在某个时刻的状态由(A)个子状态中各取一个状态组合而成。
协作图描述了协作的(A)之间的交互和链接,它画成(A)图的形式。
A.人员B.单位C.人员或单位D.人员或外部系统A.类B.状态C.活动D.协作A.每一B.任意一C.任意二D.任意m(m<=n)A.对象B.类C.用例D.状态A.对象B.类C.用例D.状态在面向对象分析过程中,用概念模型来详细描述系统的问题域,用(B)来表示概念模型;用(A)来描述对象行为。
A.序列图 B类图 C协作图 D用例图A.序列图和协作图 B用例图和活动图 C类图和包图 D用例图和构件图在UML中,(D)把活动图中的活动划分为若干组,并将划分的组指定给对象,这些对象必须履行该组所包含的活动,它能够明确地表示哪些活动是由哪些对象完成的。
A组合活动 B同步条 C活动 D泳道在较高的抽象层次上,传统的程序流程图与UML中活动图最根本的区别在于(A)。
A程序流程图明确地指定了每个活动的先后顺序,而活动图仅描述了活动和必要的工作顺序B活动图不能提供循环控制结构,而程序流程图提供C活动图不能表示并发活动,而程序流程图可以表示并发活动D两者采用不同的图形符号系统在关于用例的描述中,错误的是(A)A用例将系统的功能范围分解成许多小的系统功能陈述B一个用例代表了系统的一个单一的目标C用例是一个行为上相关的步骤序列D用例描述了系统与用户的交互UML提供了4种结构图用于对系统的静态方面进行可视化、详述、构造和文档化。
其中(B)是面向对象系统建模中最常见的图,用于说明系统的静态设计视图;当需要说明系统的静态实现视图时,应该选择(A);当需要说明体系结构的静态实施视图时,应该选择(D)。
A构件图 B类图 C对象图 D部署图A构件图 B协作图 C状态图 D部署图A协作图 B对象图 C活动图 D部署图面向对象系统中有两种基本的复用方式:框架复用和类库复用。
下列关于框架和类库的描述不正确的是()。
A框架是一个“半成品”的应用程序B类库只包含一系列可被应用程序调用的类C框架会为一个特定的目的实现一个基本的、可执行的架构D 类库是框架的一种扩展形式下列有关面向对象的叙述不正确的是(C)A面向对象设计最根本的意图是适应需求变化B应尽量针对接口编程,而不要针对实现编程C 尽量使用继承而不是聚合,因为继承使得类间的耦合性最小D 尽量使用已有的类库当(D)时,用例是捕捉系统需求最好的选择。
A系统具有很少的用户 B系统具有很少的接口 C系统算法复杂,功能单一D系统有很多参与者现有两个用例UC1和UC2,其中UC2是一个完整的用例,可被实例化,而UC1需要UC2中的事件流才可被实例化,且UC1指定了使用UC2的精确位置,则UC1和UC2间的关系是(A)。
A IncludeB ExtendC GeneralizeD Call下列关于面向对象的分析与设计的描述,正确的是(B)。
A面向对象设计描述软件要做什么B面向对象分析不需要考虑技术和实现层面的细节C面向对象分析的输入是面向对象设计的结果D面向对象设计的结果是简单的分析模型在UML的动态建模机制中,(C)描述了对象之间动态交互关系,还描述了交互对象之间的静态链接关系,即同时反映系统的动态和静态性。
A状态图 B序列图 C协作图 D活动图在UML的通用机制中,(A)用于把元素组织成组;(D)是系统中遵从一组接口规范且付诸实现的物理的、可替换的软件模块。
A包 B类 C接口 D构件A包 B类 C接口 D构件根据下图所示的UML类图可知,类Car和类Boat中的move()方法(B)。
A引用了类Transport的move()方法B重置了类Transport的move()方法C是类Transport的move()方法的聚集D是类Transport的move()方法的泛化在一个客户信息系统中存在两种类型的客户:个人客户和集团客户。
对于个人客户,系统中保存了其客户标识和基本信息(包括姓名、住宅和Email);对于集团客户,系统中保存了其客户标识,以及与该集团客户相关的若干个联系人的信息(联系人的信息包括姓名、住宅电话、email、办公电话和职位)。