第2章 类与对象



《第2章 类与对象》由会员分享,可在线阅读,更多相关《第2章 类与对象(110页珍藏版)》请在文档大全上搜索。
1、类与对象构造函数析构函数静态成员函数友元函数第2章 类与对象 学习目标掌握类对象的构造和析构过程1了解面向对象的编程思想42掌握静态成员的定义及操作方法掌握掌握了解熟悉3熟悉类的定义方法,掌握类中数据成员和成员函数的定义及使用 目录2.12.1面向对象程序设计点击查看本小节知识架构2.22.2类与对象点击查看本小节知识架构2.52.5类中特殊的成员函数点击查看本小节知识架构2.32.3构造函数和析构函数点击查看本小节知识架构2.42.4类中特殊的成员变量点击查看本小节知识架构2.62.6友元点击查看本小节知识架构2.72.7小结 案例相关知识点返回目录2.1.1面向过程程序设计面向对象程序设计
2、2.1.2面向对象的基本概念2.1.32.1 面向对象程序设计返回目录2.2.1类和对象的关系类的定义2.2.2类的成员2.2.3对象的创建与使用2.2.4 案例相关知识点this指针2.2.5类的成员的访问控制2.2.62.2 类与对象返回目录2.3.1构造函数包含对象成员的类的构造函数2.3.2析构函数2.3.3拷贝构造函数2.3.4 案例相关知识点深拷贝与浅拷贝2.3.52.3 构造函数和析构函数返回目录2.4.1用static修饰数据成员用const修饰数据成员2.4.2 案例相关知识点2.4 类中特殊的成员变量 案例相关知识点返回目录2.5.1静态成员函数用const修饰的成员函数2
3、.5.2类中的内联函数2.5.32.5 类中特殊的成员函数返回目录2.6.1友元函数友元类2.6.2 案例相关知识点2.6 友元类与对象C+相比于C语言最重要的发展,就是采用面向对象思想进行程序设计。 对于面向对象程序设 计 而言,最重要的一个特征就是数据封装。所谓数据封装,就是通过类来实现信息的抽象及隐藏。学习了类的相关知识,才能真正走进面向对象程序设计的世界。2.1 面向对象程序设计面向对象是相对于面向过程而言的,因此在学习面向对象之前,先要了解一下什么是面向过程?面向过程程序设计2.1 面向对象程序设计概 述面向过程程序设计就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现
4、,使用的时候一个一个依次调用即可。举例学生早起上学起床 刷牙 吃早餐 上学粗略的可以将这个过程拟为4步,你只须一个一个的按顺序实现就行了。2.1 面向对象程序设计面向过程程序设计的基本设计结构如图:2.1 面向对象程序设计面向过程程序设计对于较为简单的需求通常能够很好地满足。如果问题比较复杂,在项目开始之初就完成模块的合理划分,往往比较困难。当数据结构改变时,所有相关的处理过程都要进行相应的修改,程序的可用性极差。面向过程程序设计的劣势2.1 面向对象程序设计数 据处理数据的过程面向对象的编程语言整合为一个整体面向对象程序设计2.1 面向对象程序设计概 述面向对象程序设计描述的是客观世界中的事
5、物,以对象代表一个具体的事物,把数据和数据的操作方法放在一起而形成的一个相互依存又不可分割的整体。举例学生早起上学起床 刷牙 吃早餐 上学学 生起床 刷牙 吃早餐 上学面向对象程序设计是建立一个“学生实体”,由这个“实体”引发一系列事件。2.1 面向对象程序设计 思考 举例说明你对面向对象的理解用洗衣机实现洗衣,脱水,烘干等一系列事件,可以看做是面向对象程序设计雇佣厨师买菜,洗菜,炒菜等一系列事件,可以看做是面向对象程序设计。2.1 面向对象程序设计由此可见,面向对象程序设计所强调的基本原则就是直接面对客观存在的事物,将人们在日常生活中习惯的思维方式和表达方式应用在软件开发中,使软件开发从过分
6、专业化的方法、规则中回到客观世界,回到人们通常的思维方式。面向对象的思想更适用于大型系统项目的开发。面向对象的发展史2.1 面向对象程序设计1967年挪威计算中心的Kisten Nygaard和Ole Johan Dahl开发了Simula67语言,它被认为是第一个面向对象的语言。20世纪70年代初,Palo Alto研究中心的Alan Kay所在的研究小组开发出Smalltalk语言。之后又开发出Smalltalk-80。Smalltalk-80被认为是最纯正的面向对象语言。面向对象语言,如Object-C,C+,Self,Eiffl。2.1 面向对象程序设计面向对象的应用领域:数据库系统交
7、互式界面分布式系统人工智能网络管理结构面向对象的基本概念2.1 面向对象程序设计对象类抽象对象是现实世界中实际存在的事物,是构成世界的一个独立单位,它由数据(描述事物的属性)和作用于数据的操作(体现事物的行为)构成一个独立整体。在面向对象的方法中,类是具有相同属性和行为的一组对象的集合,它提供一个抽象的描述,其内部包括属性和行为两个主要部分。抽象是通过特定的实例抽取共同特征以后形成概念的过程。抽象化主要是为了使复杂度降低,是面向对象编程思想的本质。面向对象的基本概念2.1 面向对象程序设计对象类抽象类抽象对象既可以是具体的物理实体的对象,也可以是人为的概念,或者是任何有明确边界和意义的东西。如
8、:工人公司面向对象的基本概念2.1 面向对象程序设计对象类抽象对象抽象只关注那些与当前目标有关的本质特征,把具有共同性质的事物划分为一类,得出一个抽象概念。如:学生学生医生医生工程师工程师 人类人类类面向对象的基本概念2.1 面向对象程序设计对象类抽象对象类如:抽象得出男人特征的过程,就是一个抽象的过程面向对象的基本特征2.1 面向对象程序设计封装继承多态是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体实现细节,这就是封装思想。主要描述的是类与类之间的关系,通过继承,可以在无需重新编写原有类的情况下,对原有类的功能进行扩展。指在一个类中定义的属性和方法被其它类继承后,它们
9、可以具有不同的数据类型或表现出不同的行为。面向对象的基本特征2.1 面向对象程序设计封装继承多态继承多态封装就是隐藏对象的属性和实现细节,仅对外提供公开接口。26面向对象的基本特征2.1 面向对象程序设计封装继承多态继承多态机器可看作是一个对象,内部封装了若干功能人通过几个按钮就可以享受机器提供的服务了案例案例人操作机器的例子面向对象的基本特征2.1 面向对象程序设计封装继承多态封装多态继承继承继承描述的不同类型之间的一种关系,它可以扩展不同类型的功能28面向对象的基本概念2.1 面向对象程序设计封装继承多态封装多态学生学生医生医生工程师工程师 人类人类【结论】学生、医生、工程师都是由人类派生
10、派生出来的。 思考 下列人物之间的关系?面向对象的基本概念2.1 面向对象程序设计封装继承多态封装多态继承多态多态指的是同一个操作作用于不同的对象,可以产生不同的效果。30面向对象的基本概念2.1 面向对象程序设计封装继承多态封装继承Cut他们表现的形态是不同形态是不同的!案例不同事物对“Cut”声的不同表现演员停止表演理发师剪发2.1 面向对象程序设计封装、继承、多态的简单关系2.2 类与对象汽车模型汽车模型汽车汽车3 3 思考 汽车模型和汽车之间的关系?汽车汽车1 1汽车汽车2 2【结论】汽车是根据汽车模型设计出来的!2.2 类与对象思路对象描述的是现实生活中的事物,而类描述的是一系列对象
11、的共同属性和方法。如果将汽车比作对象,那么汽车模型就相当于类。【结论】p 类是对某一类事物的抽象描述,是对象的模板p 对象用于表示现实中事物的个体,是类的实例推理类和对象的关系2.2 类与对象2.2 类与对象类的语法格式class 类名成员访问限定符: 数据成员;成员访问限定符: 成员函数;class是定义类的关键字class后是表示类名的标识符类名后要写一对大括号,类的成员要在其中说明“;”表示类定义的结束class Car public: void drive(); void stop(); private: int m_nWheels;看一个简单的类:这是一个类这是方法37372.2 类