面向对象程序设计复习资料Word文件下载.docx
《面向对象程序设计复习资料Word文件下载.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计复习资料Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。
攻击力;
生命值HP;
初始化怪物;
怪物进行攻击;
判断怪物是否存活;
}
类名
边界开始
属性
操作
边界结束
第3章面向对象思维建模
UML:
统一建模语言或标准建模语言
1)类图:
常见的UML图,显示了建模的静态结构,特别是模型中存在的类、类的内部结构以及他们与其他类的关系等。
类与类之间的常见关系:
①依赖关系:
依赖关系的偶然性和临时性——人依赖船
②聚合关系:
整体与部分之间是可分离的
③继承关系:
含义:
儿子类继承父亲类,不仅继承所有属性和行为,还自己拓展
2)时序图:
也称为序列图或循序图或顺序图,是一种UML交互图,它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。
类图表示“不因时间而变化的部分(静态关系)”;
时序图表示“随时间而变化的部分(动态行为)”
时序图的元素组成和绘制流程:
对象:
类的实例;
三种状态——激活、运行、销毁
生命线:
对象在一段时间内的存在
激活:
对象操作的执行
消息:
对象之间的通信机制(五类:
递归调用、普通操作、返回消息、导步调用)
3)用例图:
指由参与者、用例以及他们之间的关系构成的用于描述系统功能的视图。
第4章程序设计语言C++初识
C语言:
是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。
C++:
是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。
#include<
iostream>
#include预编译命令,将有关的“头文件”包括到用户源文件中。
iostream是一个文件库,其表示输入输出流
usingnamespacestd;
std是一种命名空间,属于iostream库,在不同的命名空间下的函数可以重名
intmain()
定义主函数,必须有且仅有一个main函数作为程序的入口。
{cout<
<
"
He1loWor1d!
endl;
表示流的方向;
endl表示回车换行。
system("
pause"
);
system()函数用来调用系统命令;
“pause”命令表示暂停。
return0;
}
函数结束的时候要有返回值。
#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<
string>
)
数据类型
字节数
取值范围
4
-231~231-1
unsignedint
0~232-1
1
-128~127
unsignedchar
0~255
long
unsignedlong
short
2
-32768~32767
unsignedshort
0~65535
-3.4e38~3.4e38
8
-1.7e308~1.7e308
符号:
=
赋值符号
右边的值赋给左边
:
域作用符
输出操作符
将数据打印输出输出流:
std:
cout<
输出内容"
endl
>
输入操作符
接收输入数据到变量输入流:
cin>
变量"
控制语句:
条件判断语句
if(条件){
语句体;
语句体1;
}else{
语句体2;
if(条件1){
}elseif(条件2){
语句体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
classCraftsmanship
Craftsmanship(void);
//构造函数
~Craftsmanship(void);
//析构函数
stringname;
//技能名称
intconsumption;
//技能所消耗的魔法值
intATK;
//技能攻击力
intcooling;
//技能规定的冷却时间
intavailable;
//技能所需英雄等级
intaction;
//技能已冷却回合数};
class:
表示定义一个类;
Craftsmanship:
表示类名;
public:
表示成员的访问权限,
①public表示公共的,可以在类外部访问;
②private表示私有的,只能在类内部访问;
③protected表示保护的,只能在类和同包中访问;
如果没有写访问权限,则默认私有的private;
大括号结尾处的分号表示整个类定义完成;
要点:
如果一个类仅仅被声明了却没有实现的话,不可以使用;
在一个类中,属性变量只能被声明,不可以进行初始化;
在一个类中,函数在类中声明,函数体可以在类中定义(实现),也可以在类外面定义;
但为了提高程序可读性,通常在类中只能做声明而不实现。
对象实例化
定义格式:
存储类型<
<
对象名1>
<
对象名2>
…;
|斜体字为非必须,粗体下划线为必须
存储类型可选,默认为自动类型(auto);
为用户自定义的类的名字;
对象名>
为要创建对象的名字。
一次可创建多个对象,用逗号隔开
赋值格式:
对象名.属性名=具体数值|“.”代表引用对象中某一成员
还能调用对象中的函数(构造函数和析构函数除外)
Craftsmanship.h"
Monster.h"
classHero
……
private:
#pragmaonce:
能够保证当前的头文件只被编译一次,避免多次编译。
:
表示引入头文件
classHero:
该语句是类的前置声明,防止出现死循环引用现象。
表示私有的,即变量iAttack和函数settlement(intlevel)只能由英雄类中的函数访问,其他位置无法访问。
对象间的协作实现
如果函数在类