




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象程序设计复习资料第2章面向对象思维建立面向对象程序设计的特征:①模块化;②抽象化;③封装;④可组合;⑤继承;⑥软件持续使用时间更长。面向对象思维分为两步:一是需求分析,识别出有哪些对象,它们分别做什么事(who&&what);二是如何利用对象协作完成一件完整的事情(how)。•类与对象的概念和关系:1)类是面向对象程序设计方法的核心,利用类可以实现对数据的封装和隐蔽。在面向对象程序设计中,程序模块是由类构成。类是对逻辑相关的函数与数据的封装,它是对问题的抽象描述。C++的语法提供了对自定义类型的支持,这就是类。正如基本数据类型中隐含的数据和操作,因此在定义一个类时也要说明数据和操作。2)类实际上是一种抽象机制,它描述了一类为问题的属性和行为,即类描述了一类对象的数据存储和操作特征。每一个怪物都有一些共同的静态特征,这些共同的特征抽象到类中,统称为该类的属性,属性通过声明普通变量来实现。每一个怪物都有一些共同的动态行为,这些共同的行为抽象到类中,统称为该类的操作,操作通过声明普通变量来实现。怪物类伪类图:伪类图含义UML图怪物{名称;级别;・攻击力;」生命值HP;初始化怪物;怪物进行攻击;.判断怪物是否存意)类名边界开始怪物属性操作名称;级别;攻击力;生命值HP;边界结束初始化怪物;怪物进行攻击;判断怪物是否存活;第3章面向对象思维建模UML:统一建模语言或标准建模语言1)类图:常见的UML图,显示了建模的静态结构,特别是模型中存在的类、类的内部结构以及他们与其他类的关系等。类与类之间的常见关系:①依赖关系:依赖关系的偶然性和临时性一一人依赖船②聚合关系:整体与局部之间是可别离的③继承关系:含义:儿子类继承父亲类,不仅继承所有属性和行为,还自己拓展2)时序图:也称为序列图或循序图或顺序图,是一种UML交互图,它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。类图表示“不因时间而变化的局部(静态关系)”;时序图表示“随时间而变化的局部(动态行为)”时序图的元素组成和绘制流程:对象:类的实例;三种状态一一激活、运行、销毁生命线:对象在一段时间内的存在激活:对象操作的执行消息:对象之间的通信机制(五类:递归调用、普通操作、返回消息、导步调用)3)用例图:指由参与者、用例以及他们之间的关系构成的用于描述系统功能的视图。第4章程序设计语言C++初识C语言:是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C++:是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。#include<iostream>include预编译命令,将有关的“头文件”包括到用户源文件中。iostream是个文件库,其表小输入输出流usingnamespacestd\std是一种命名空间,属于iostream库,在不同的命名空间下的函数可以重名intmain。定义主函数,必须有且仅有一个main函数作为程序的入口。{cout«nHelloWorld!n«ezt6//;<<表示流的方向;endl表示回车换行°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〈string〉)数据类型字节数取值范围数据类型字节数取值范围int4-231〜231-1unsignedint40〜232-1char1-128〜127unsignedchar10-255long4-231〜231-1unsignedlong40〜232-1short2-32768〜32767unsignedshort20〜65535float4double8-L7e308〜L7e308
舛■&付节:ZZ赋值符号右边的值赋给左边••••域作用符«输出操作符将数据打印输出输出流:std:coutv<"输出内容"v<std::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:以上都不满足时执行的语句;}easel执行完后继续执行case2循环执行语句for(循环初始值福环条件,循环语句)(循环体;}while(循环条件){循环体;}do{循环体;}while(循环条件)可能不会执行至少执行一次转向语句break;提前结束当前循环或条件判断continue;结束本次循环,进入下一次循环指针与引用:指针一一存储的信息是对象在内存中的地址。通过指针,可以间接地访问对象。引用一一是一个对象的别名,系统不为引用分配内存空间,对引用的改动就是对目标对象的改动。&:取变量地址;*:取指针所指的变量的值;的两个含义:1、取该变量的地址2、表示引用第5章类与对象的实现•类的构成通过对LostCraft游戏的分析,别离出多个对象,并抽象成4个类:英雄类、技能类、怪物类、场景类
一个类由属性和操作两个局部组成:具有相同特性(属性)和行为(操作、方法)的对象的抽象就是类;类具有属性,它是对象状态的抽象,用数据结构(普通变量等)来描述类的属性;类具有操作,它是对象行为的抽象,用操作名和实现该操作的方法(函数)来描述。类的实现与声明定义类的一般形式:classcRectangleclass<类名〉{public:{访问权限:doublelength;//矩形长doublewidth;〃矩形宽byter,g,b;〃矩形颜色属性;doublecircumference();〃求矩形周长doublearea();};〃求矩形面积操作;}class是定义类的关键字,表示现在要定义个类;〈类名〉为一个合法的标识符,是程序设计者为类定义的名称,该类的命名规范与变量的命名规范相同访问权限用于标出所使用的属性和方法的相关权限一对大括号表示类的边界,边界内是类的说明局部,称为类体在类体的后面有一个分号,表示类定义的结束类的声明全部写在头文件(.h)中,而实现的局部写在源文件(・cpp)文件中#pragmaonce#include<string>usingnamespacestd;classCraftsmanship{public:Craftsmanship(void);〃构造函数〜Craftsmanship(void);〃析构函数stringname;〃技能名称intconsumption;〃技能所消耗的魔法值intATK;〃技能攻击力intcooling;//技能规定的冷却时间intavailable;//技能所需英雄等级intaction;〃技能已冷却回合数);class:表示定义一个类;Craftsmanship:表力、类名;public:表小成贝的访问权限,①public表示公共的,可以在类外部访问;②private表小私有的,只能在类内部访问;③protected表小保护的,只能在类和同包中访问;如果没有写访问权限,那么默认私有的private;大括号结尾处的分号表示整个类定义完成;要点:如果一个类仅仅被声明了却没有实现的话,不可以使用;在一个类中,属性变量只能被声明,不可以进行初始化;在一个类中,函数在类中声明,函数体可以在类中定义(实现),也可以在类外面定义;但为了提高程序可读性,通常在类中只能做声明而不实现。•对象实例化定义格式:存储类型V类名〉V对象名对象名1|斜体字为非必须,粗体下划线为必须存储类型可选,默认为自动类型(auto);〈类名〉为用户自定义的类的名字;〈对象名〉为要创立对象的名字。一次可创立多个对象,用逗号隔开赋值格式:对象名.属性名=具体数值|代表引用对象中某一成员还能调用对象中的函数(构造函数和析构函数除外)#pragmaonce#include"Craftsmanship.h"#includeHMonster.hHclassHeroprivate:#pragmaonce:能够保证当前的头文件只被编译一次,防止多次编译。#includenCraftsmanship.hM:表小引入头文件classHero:该语句是类的前置声明,防止出现死循环引用现象。private:表示私有的,即变量iAttack和函数settlement(intlevel)只能由英雄类中的函数访问,其他位置无法访问。•对象间的协作实现如果函数在类外实现,那么必须在函数名前加上类名,否那么不能实现”::"是作用域限定符,用来声明函数属于哪一类;类必须先在类中做原型声明,然后才能在类外实现;system(npsudrn):等待用户按键然后返回,按任意键继续;system(nclsn):清屏操作关键字new:①在堆上获得一块内存空间、②调用构造函数、③返回正确的指针栈(堆栈)是限定仅在表尾进行插入和删除操作的线性表。单独存放数据的那块内存称为“堆。存储指针那块内存称为“栈”User*Lucy=newUser():声明一个指针对象Lucy,在名称堆区保存Lucy这个对象的所有信息,在栈中保存Lucy的堆地址。delete对象名;|销毁之前引用的对象第6章深入学习面对对象函数成员函数:属于一个类的函数;用于完成对象的初始化类函数:类的成员函数,属于一个类的成员,出现在类体中。•函数重载:又称函数名重载或函数重名,是指同一个函数名可以有多种函数实现,或者说实现不同功能细节的函数可以具有相同的函数名。实现函数重载的条件为:参数列表不同。函数重载voidshowlnfo();voidshowlnfo(stringname);voidshowlnfo(stringname);voidshowlnfo(intnum);①参数个数不同②参数类型不同•构造函数:一种特殊的成员函数,是由系统在创立对象时自动调用的,且构造函数不允许被手动调用。特点:没有返回值,与类同名;优势:减轻代码量负担,使得对象初始化功能变得更简单便捷。由用户自定义,可根据初始值的要求设计函数体。声明格式:"构造函数名(类型1形参1,类型2形参2,…){}"对象定义格式:“类名对象名(实参1,实参2.・.);”有参数的构造函数称为有参构造函数,没有参数的构造函数称为默认构造函数;如果类中没有编写构造函数,那么只能创立无参数的对象,系统会自动默认并添加该类的无参构造函数。•封装:即隐藏细节,只暴露出最终实现的公共接口。,写代码时,将类的声明与成员函数实现局部进行别离voidUser::setName(string_name){this->name=name;}〃语句1this指针只能在类的成员里使用;由this指向的_name表示User类中的属性,而等号另一端那么是形参_name。赋值语句从右向左赋值,因此该句话表示形参给成员属性值。构造函数的重载:构造函数具有相同的名字(即类名),而参数的个数或参数的类型不相同•析构函数:完成对象的销毁;不能用手动调用,是当对象的生命周期结束时,由程序自动执行。关于析构函数注意点:完成一些清理工作,但不会删除对象本身;没有返回值,没有参数;不能被重载,因此可以有多个构造函数,但只有一个析构函数;功能可以由用户自定义。第7章继承继承就是将公共的东西提取出来,封装成应该类,称为父类或基类,在此基础上编写的其他属性和方法称为子类或派生
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国7anca市场发展趋势及未来竞争战略研究报告
- 许昌职业技术学院《音乐文献导论》2023-2024学年第一学期期末试卷
- 如何防范商品损耗
- 医院职工消防安全培训
- 2025至2031年中国瓷漆窗纱行业投资前景及策略咨询研究报告
- 学前班第二学期教学工作计划
- 如何做好演讲稿
- 2025至2031年中国焊线式USB行业投资前景及策略咨询研究报告
- 烟台文化旅游职业学院《海报文化史》2023-2024学年第一学期期末试卷
- 2025-2030年专家点评:中国车用电视行业发展环境及投资策略报告
- 毕业设计(论文)-基于微信小程序校园订餐的设计与开发+ssm
- 七年级家长会历史老师发言稿
- DB33T 2029-2017 海域价格评估规范
- 2014年湖北武汉中考满分作文《艰苦中的趣味》
- 数字信号处理-洞察分析
- 2024年度小麦种植保险服务合同
- 小孩进入厂区安全免责协议书(2篇)
- 2024年网络与信息安全考试题库-多选题、填空题、判断题
- 考研教室考勤管理制度
- 2025年中考数学一轮复习:圆的切线问题 练习题汇编(含答案)
- VTE评分量表解读 课件2024.8
评论
0/150
提交评论