面向对象程序设计复习资料.docx
- 文档编号:3245554
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:11
- 大小:29.79KB
面向对象程序设计复习资料.docx
《面向对象程序设计复习资料.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计复习资料.docx(11页珍藏版)》请在冰豆网上搜索。
面向对象程序设计复习资料
面向对象程序设计复习资料
第2章面向对象思维建立
面向对象程序设计的特征:
①模块化;②抽象化;③封装;④可组合;⑤继承;⑥软件持续使用时间更长。
面向对象思维分为两步:
一是需求分析,识别出有哪些对象,它们分别做什么事(who&&what);二是如何利用对象协作完成一件完整的事情(how)。
·类与对象的概念和关系:
1)类是面向对象程序设计方法的核心,利用类可以实现对数据的封装和隐蔽。
在面向对象程序设计中,程序模块是由类构成。
类是对逻辑相关的函数与数据的封装,它是对问题的抽象描述。
C++的语法提供了对自定义类型的支持,这就是类。
正如基本数据类型中隐含的数据和操作,因此在定义一个类时也要说明数据和操作。
2)类实际上是一种抽象机制,它描述了一类为问题的属性和行为,即类描述了一类对象的数据存储和操作特征。
每一个怪物都有一些共同的静态特征,这些共同的特征抽象到类中,统称为该类的属性,属性通过声明普通变量来实现。
每一个怪物都有一些共同的动态行为,这些共同的行为抽象到类中,统称为该类的操作,操作通过声明普通变量来实现。
怪物类伪类图:
伪类图
含义
UML图
怪物
{
名称;
级别;
攻击力;
生命值HP;
初始化怪物;
怪物进行攻击;
判断怪物是否存活;
}
类名
怪物
名称;
级别;
攻击力;
生命值HP;
初始化怪物;
怪物进行攻击;
判断怪物是否存活;
边界开始
属性
操作
边界结束
第3章面向对象思维建模
UML:
统一建模语言或标准建模语言
1)类图:
常见的UML图,显示了建模的静态结构,特别是模型中存在的类、类的内部结构以及他们与其他类的关系等。
类与类之间的常见关系:
①依赖关系:
依赖关系的偶然性和临时性——人依赖船
②聚合关系:
整体与部分之间是可分离的
③继承关系:
含义:
儿子类继承父亲类,不仅继承所有属性和行为,还自己拓展
2)时序图:
也称为序列图或循序图或顺序图,是一种UML交互图,它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。
类图表示“不因时间而变化的部分(静态关系)”;
时序图表示“随时间而变化的部分(动态行为)”
时序图的元素组成和绘制流程:
对象:
类的实例;三种状态——激活、运行、销毁
生命线:
对象在一段时间内的存在
激活:
对象操作的执行
消息:
对象之间的通信机制(五类:
递归调用、普通操作、返回消息、导步调用)
3)用例图:
指由参与者、用例以及他们之间的关系构成的用于描述系统功能的视图。
第4章程序设计语言C++初识
C语言:
是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。
C++:
是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。
#include
#include预编译命令,将有关的“头文件”包括到用户源文件中。
iostream是一个文件库,其表示输入输出流
usingnamespacestd;
std是一种命名空间,属于iostream库,在不同的命名空间下的函数可以重名
intmain()
定义主函数,必须有且仅有一个main函数作为程序的入口。
{cout<<"He1loWor1d!
"< <<表示流的方向;endl表示回车换行。 system("pause"); system()函数用来调用系统命令;“pause”命令表示暂停。 return0;} 函数结束的时候要有返回值。 #include"文件名"→先寻找工程当前目录,找不到再寻找安装目录。 适用于导入用户自定义的、处在工程当前目录下的文件。 #include<文件名>→不寻找工程当前目录,直接寻找安装目录。 适用于导入标准库(文件名)中的文件。 程序注释: 单行注释“//”和多行注释“/*多行内容*/” C++编译过程经历步骤: 1、用C++语言编写程序。 2、对源程序进行编译。 包括错误(Error)和警告(Warning) 3、将目标文件连接起来。 4、执行程序。 5、分析运行结果。 变量: 程序运行过程中其值可以改变。 必须先定义后使用,区分大小写; 常量: 程序运行过程中其值不能改变。 分类: 整型常量、实型常量、字符型常量、字符串常量和符号常量。 变量定义: “变量类型变量名” 常量定义: “const数据类型常量名=数值” ·数据类型: 基本数据类型 int 整数,在目前绝大多数机器上占4个字节 float 单精度浮点数,4个字节 double 双精度浮点数,8个字节 char 字符,1个字节,表示256个ASCII字符,或-128~127的整数 数据类型修饰符 shortint 简写short,短整数,2个字节 longint 简写long,长整数,4个字节 unsigned 用来修饰char、int、short和long,无符号整数(≥0) ·string字符串类型,需要预编译(#include 数据类型 字节数 取值范围 数据类型 字节数 取值范围 int 4 -231~231-1 unsignedint 4 0~232-1 char 1 -128~127 unsignedchar 1 0~255 long 4 -231~231-1 unsignedlong 4 0~232-1 short 2 -32768~32767 unsignedshort 2 0~65535 float 4 -3.4e38~3.4e38 double 8 -1.7e308~1.7e308 符号: = 赋值符号 右边的值赋给左边 : : 域作用符 << 输出操作符 将数据打印输出输出流: std: cout<<"输出内容"< : endl >> 输入操作符 接收输入数据到变量输入流: std: cin>>"变量">>std: : endl 控制语句: 条件判断语句 if(条件){ 语句体; } if(条件){ 语句体1; }else{ 语句体2;} if(条件1){ 语句体1; }elseif(条件2){ 语句体2; }else{ 语句体3;} switch(表达式){ case常量表达式1: 满足常量表达式1时执行的语句; case常量表达式2: 满足常量表达式2时执行的语句; default: 以上都不满足时执行的语句;} case1执行完后继续执行case2 循环执行语句 for(循环初始值,循环条件,循环语句) {循环体;} while(循环条件){ 循环体;} do{ 循环体; }while(循环条件) 可能不会执行 至少执行一次 转向 语句 break; 提前结束当前循环或条件判断 continue; 结束本次循环,进入下一次循环 指针与引用: 指针——存储的信息是对象在内存中的地址。 通过指针,可以间接地访问对象。 引用——是一个对象的别名,系统不为引用分配内存空间,对引用的改动就是对目标对象的改动。 &: 取变量地址;*: 取指针所指的变量的值; “&”的两个含义: 1、取该变量的地址2、表示引用 第5章类与对象的实现 ·类的构成 通过对LostCraft游戏的分析,分离出多个对象,并抽象成4个类: 英雄类、技能类、怪物类、场景类 一个类由属性和操作两个部分组成: 具有相同特性(属性)和行为(操作、方法)的对象的抽象就是类; 类具有属性,它是对象状态的抽象,用数据结构(普通变量等)来描述类的属性; 类具有操作,它是对象行为的抽象,用操作名和实现该操作的方法(函数)来描述。 ·类的实现与声明 定义类的一般形式: classcRectangle class<类名> {public: {访问权限: doublelength;//矩形长 doublewidth;//矩形宽 byter,g,b;//矩形颜色 属性; doublecircumference();//求矩形周长 doublearea();};//求矩形面积 操作;} ·class是定义类的关键字,表示现在要定义个类; ·<类名>为一个合法的标识符,是程序设计者为类定义的名称,该类的命名规范与变量的命名规范相同 ·访问权限用于标出所使用的属性和方法的相关权限 ·一对大括号表示类的边界,边界内是类的说明部分,称为类体 ·在类体的后面有一个分号,表示类定义的结束 类的声明全部写在头文件(.h)中,而实现的部分写在源文件(.cpp)文件中 #pragmaonce #include usingnamespacestd; classCraftsmanship {public: Craftsmanship(void);//构造函数 ~Craftsmanship(void);//析构函数 stringname;//技能名称 intconsumption;//技能所消耗的魔法值 intATK;//技能攻击力 intcooling;//技能规定的冷却时间 intavailable;//技能所需英雄等级 intaction;//技能已冷却回合数}; class: 表示定义一个类; Craftsmanship: 表示类名; public: 表示成员的访问权限, ①public表示公共的,可以在类外部访问; ②private表示私有的,只能在类内部访问; ③protected表示保护的,只能在类和同包中访问; 如果没有写访问权限,则默认私有的private; 大括号结尾处的分号表示整个类定义完成; 要点: ·如果一个类仅仅被声明了却没有实现的话,不可以使用; ·在一个类中,属性变量只能被声明,不可以进行初始化; ·在一个类中,函数在类中声明,函数体可以在类中定义(实现),也可以在类外面定义;但为了提高程序可读性,通常在类中只能做声明而不实现。 ·对象实例化 定义格式: 存储类型<类名><对象名1>,<对象名2>,…;|斜体字为非必须,粗体下划线为必须 存储类型可选,默认为自动类型(auto); <类名>为用户自定义的类的名字; <对象名>为要创建对象的名字。 一次可创建多个对象,用逗号隔开 赋值格式: 对象名.属性名=具体数值|“.”代表引用对象中某一成员 还能调用对象中的函数(构造函数和析构函数除外) #pragmaonce #include"Craftsmanship.h" #include"Monster.h" classHero …… private: …… #pragmaonce: 能够保证当前的头文件只被编译一次,避免多次编译。 #include"Craftsmanship.h": 表示引入头文件 classHero: 该语句是类的前置声明,防止出现死循环引用现象。 private: 表示私有的,即变量iAttack和函数settlement(intlevel)只能由英雄类中的函数访问,其他位置无法访问。 ·对象间的协作实现 如果函数在类
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 复习资料