




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一部分 面向对象编程原理 近五十年间 软件技术经历了多个阶段的发展演变 面向过程编程采用了自顶向下的设计方案 问题被看做多个执行任务的序列 为完成 这些任务 须实现一些函数 面向过程有两大不足 即 1 数据可在程序内自由迁移 程序内任何函数都会引起 数据的更改 增加了数据的脆弱性 2 它并不能很好地建模现实世界 为了克服面向过程编程中的不足 人们发明了面向对象编程 OOP 它采用自底向上 的编程方案 在程序开发中 把数据视为重要元素 不允许数据在系统内自由迁移 它还将数据和函数紧密绑定于成为类的数据结构中 函数可操作类中的数据 此特性 称为数据封装 在面向对象编程中 问题被视为一系列称为对象的实体的集合 对象是类的实例 将数据与程序的直接访问隔绝 这称为数据隐藏 数据抽象指的是 将各种必要特性合并 而不引入背景细节 继承是这样的一个过程 即某类的对象得到另一类对象的属性 多态指的是 一个名称 多种形态 在程序中 我们可以借此定义多个同名函数 此 特性亦可重载运算符 这样一来 同一个运算符在不同的实例下 会有不同的行为 动态绑定指的是 给定过程的代码 直到运行期被调用时才确定 消息传递涉及对象名 函数 消息 名以及发送的信息 与传统的编程技术相比 面向对象技术具有诸多优势 最显著的当属重用技术 在实时系统等几乎所有的计算机领域 面向对象编程的应用程序都已受到重视 不少语言都支持面向对象编程 流行的语言包括 C Smalltalk 和 Java 第二部分 C 入门 C 是 C 语言的超级 C 在 C 语言的基础上 添加了一些面向对象的特性 诸如对象 继承 函数重载和 运算符重载 这些特性加强了程序的清晰性 可扩展性 使程序容易维护 C 可用于开发各种系统 诸如编辑器 编译器 数据库 通信系统以及其他更多复杂 的实际系统 C 支持交互式输入输出 并引入了新的注释符号 可用于注释单句 它也支持 C 语 言的注释风格 和 C 程序一样 所有 C 程序的执行入口都是 main 函数 并以 return 语句作 为结束 头文件 iostream 应包含于所有使用输入输出操作的程序开头 所有标准 C 程序都要包含 using namespace std 指令 典型的 C 程序包括四个基本部分 也就是头文件包含部分 类声明部分 成员函数 部分和主程序部分 和 C 程序一样 C 程序可用于任何文本编辑器创建 大多数编译器提供了集成开发运行环境 流行的编译器系统有 UNIX AT T C Turbo C 和微软公司的 Visual C 第三部分 符号 表达式和控制结构 C 有不同的符号 包括关键字 标识符 常量 字符串和操作符 标识符指的是变量名 函数名 数组名 类名等 C 中增加了 void 的一个用途 可用于声明通用指针 C 中枚举数据类型略有不同 枚举类型名称为新的类型名 这样我们就可以声明枚举 类型的变量 在 C 中 字符数组的大小应比字符串的实际长度大 1 C 增加了指针常量和常量指针的概念 对于前者我们不能修改赋予它的地址值 对于 后者 我们不能修改它指向的内容 在 C 的内存管理和多态实现中 指针被广泛地使用 C 中提供了 const 修饰符 用于声明常量 常量也是变量 只是其值不可变更 const 修饰符默认修饰整型 C 的变量类型检查非常严格 它不允许不同类型变量之间的赋值 类型转换是打破此 规的唯一办法 C 允许我们在程序中随处声明变量 而且可以利用声明处的表达式 在运行期完成初 始化 引用变量给之前定义的变量提供了一个别名 它们都指向内存中的同一个数据对象 所以 改变其中一个的值 另一边量的值也会随之改变 引用变量必须在声明时初始化 这建立了它和要引用的变量之间的对应关系 作用于解析操作符 的主要用于类 以识别成员函数所属的类 除了 malloc calloc free 函数外 C 提供了两个一元操作符 即 new 和 delete 以更好和更方便地分配和释放内存 C 也提供了操纵器 来格式化输出数据 最常用的操纵器为 endl 和 setw C 支持七种表达式类型 表达式中数据类型混用时 C 使用特定规则 自动地进行 类型转换 使用类型转换操作符 C 也可显示地进行变量和表达式的类型转换 和 C 语言一样 C 也支持三种基本的控制结构 也就是顺序结构 分支结构和循环 结构 并使用各种控制语句实现它们 比如 if if else switch do while while 以 及 for 第四部分 C 中的函数 在程序的不同处 调用函数可减少程序的大小 在 C 中 main 函数向操作系统返回一个整型值 因为函数的返回值类型默认是 整型 所以 main 函数中的关键字 int 是可选的 而如果没有返回语句 大部分 C 编译器会提示一个警告 函数原型向编译器提供了函数的细节 比如参数的数目和类型 以及返回值的类型 C 的引用变量使我们可以传引用参数给函数 函数也可以返回引用变量 当函数声明为内联时 编译器用相应的函数代码替换了函数调用 一般情况下 小函 数才使用内联 编译器可能会忽略函数的内联声明 如果函数声明太长或过于复杂 编译器将按常规 函数编译它 当函数声明时 C 允许我们把默认值赋给函数参数 这种情况下 我们可以无需指明 所有参数 便可调用函数 默认参数总是由右到左添加 C 中 函数的参数可声明为常量 表示函数不可更改此变量 C 允许函数重载 也就是说 我们可以定义多个同名函数 通过检查参数数目和类型 编译器会准确地匹配函数调用和函数代码 C 支持两种新的函数类型 亦即友元函数和虚函数 C 标准库支持很多数学库函数 使用它们可以完成许多数学计算 第五部分 类和对象 类是结构体数据类型的扩展 一个类有多个成员变量和成员函数 默认情况下 类的成员是私有的 而结构体的成员是公用的 只有成员函数可以访问私有数据成员和私有函数 但是类外可以访问公用成员 在 C 中 类变量称为对象 利用对象并使用点操作符 我们可以访问类的公用成员 我们可以在类内或类外定义成员函数 成员函数和常规函数的区别在于 成员函数的 头部有一个隶属标识符 以表明所属类 对象声明时 内存空间才会分配 每一对象的成员变量空间单独分配 而成员函数的 空间则统一分配 类的一个成员变量可声明为静态成员 一般用于维护整个类的通用值 静态成员变量必须定义于类外 静态成员函数可访问声明在同类的静态成员 调用静态成员函数时需要用到类名 C 允许我们使用对象数组 对象可用作函数自变量 友元函数不在友元声明类的作用域类 它可以访问累的所有私有数据 函数可以返回对象 如果成员函数不改变类内的任何数据 我们可以将其声明为常量成员函数 只要在函 数原型中加上关键词 const 声明和定义都要加 我们也可以在函数内定义和使用类 这种类称为局部类 第六部分 构造函数和析构函数 C 提供了一种称为构造函数的特殊成员函数 它能帮助对象在创建时完成初始化 这 一过程被称为对象的自动初始化 构造函数名和类名一致 构造函数通常用来初始化变量 以及分配内存 和常规函数一样 构造函数也可以被重载 当对象同时被创建和初始化时 复制构造函数被调用 我们可以声明一个常量对象 其数据值不能改变 C 还提供另一种成员函数 称为析构函数 当对象不再需要时 会调用这种函数来销 毁对象 第七部分 运算符重载和类型转换 运算符重载是 C 的重要特性之一 又被称为编译时多态性 使用重载特性 我们可以对两个用户自定义数据类型 比如说对象 执行相加的操作 使用的语法就和基本数据类型一样 我们可以重载几乎所有 C 的运算符 下面几个是例外 类成员访问符 作用域解析符 大小运算符 sizeof 条件运算符 运算符重载是通过一种称为运算符函数的特殊函数完成的 该函数定义了运算符的特 定任务 运算符重载时有一些限制 运算符函数必须是非静态的成员函数或者友元函数 重载 的运算符必须有至少一个用户自定义类型的操作数 编译器不支持用户自定义数据类型的自动类型转换 我们可以使用自定义的转换运算 符函数 以实现自定义数据类型的自动类型转换 转换运算符函数应符合下列条件 必须是类成员 必须不指定返回值 必须没有参数 第八部分 继承 类的扩展 从旧类派生一个新类的机制被称为继承 继承提供了可重用性的概念 通过继承 C 的类可以被重用 派生类继承了基类的一部分或所有特性 只有一个基类的派生类被称为单继承 可从多个类继承 这被称为多继承 可从另一派生类继承类 这被称为多级继承 当某类的属性被多于一个类继承时 这被称为层次继承 不管是在公用模式还是私有模式 类的私有成员都不可被继承 以公用模式继承的保护成员仍为派生类的保护成员 而以私有模式继承的保护成员 则变成派生类的私有成员 友元函数和友元类的成员函数可直接访问私有和保护数据 派生类的成员函数只能直接访问保护和公用数据 不过他们可通过基类的成员函数访 问私有数据 多路继承可能引起祖父基类的继承成员的重复 通过将共同的基类设为虚基类 我们 可以避免祖父基类成员的重复 在多继承中 基类的创建次序与他们在派生类中的声明次序一致 类可包含其他类的对象 这被称为包含关系或嵌套 第九部分 异常处理 异常是程序运行时可能遇到的特殊问题 异常有两种 同步异常和异步异常 C 提供的机制只处理同步异常 异常通常由 try 块中的错误语句引发 语句发现错误并将其抛出 然后被 catch 语句捕 捉到 catch 语句定义了成块的语句 以适当地处理异常 当异常没有被捕捉到时 程序将退出 try 块可能会直接抛出异常 或者调用了抛异常的函数 不管抛出点在哪里 catch 块 都直接放置在 try 块后 我们可以放置多个 catch 块 以捕捉和处理 try 块抛出的多种类型的异常 有可能让某个 catch 语句捕捉到所有异常 只要将其参数变成省略号即可 我们也可以限定函数只抛出某些指定的异常 只要在函数定义后添加特定抛出语句即 可 第十部分 面向对象系统的开发 为了高效地打造高质量的软件 软件工程师已经动用了各种工具 方法和过程 以控 制软件开发的流程 方法提供了构建软件的思路 而工具则为这些方法提供了自动的或半 自动的支持 他们用于软件开发过程的各个阶段 即策划 分析 设计 开发和维护 软 件开发过程把方法和工具整合在了一起 使得软件系统的开发合理而又能及时完成 软件 开发过程还提供了使用方法和工具的指导 如何在每一阶段开发交付的产品 应用何种控
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 童话寓言作文送太阳450字14篇
- 2025年教师招聘之《幼儿教师招聘》通关练习题库包及参考答案详解【巩固】
- 新质生产力产业转型案例
- 2025年教师招聘之《小学教师招聘》练习试题附完整答案详解(易错题)
- 骨骼保卫战丨别让身体变“酥脆饼干”
- 状物作文我喜欢的植物200字(8篇)
- 押题宝典期货从业资格之《期货法律法规》考试题库附答案详解ab卷
- 肉卷机安全操作规程培训课件
- 企业年度工作总结报告编制手册
- 初一妈妈外貌的英语作文120词(7篇)
- 设备(软件)调试记录
- 汽车起重机吊装专项施工方案
- 2讲-良肢位摆放课件
- 2022年枣庄专业人员继续教育公需课答案
- 踝关节镜技术PPT
- 妊娠合并心脏病及课件
- 私募股权投资基金激励制度(包含募资奖励、投成奖励、退出奖励等)
- 现代写作教程全套课件
- 幸福中国一起走总谱图片格式-总谱
- 2022版《语文课程标准》
- 机械优化设计完整版PPT课件.ppt
评论
0/150
提交评论