第二类和对象概要_图文

第2章 类和对象 ? ? ? ? ? ? 2.1 2.2 2.3 2.4 2.5 2.6 面向对象程序设计方法概述 类的声明和对象的定义 类的成员函数 对象成员的引用 类和对象的简单应用 类的封闭性和信息隐蔽 2.1面向对象程序设计方法概述 ? 对于规模比较小的程序,程序员可以直接 编写出一个面向过程的程序,能详细地描 述每一瞬间的数据结构和对其操作的过程。 但是当程序规模越来越大,面向过程的程 序语言就显得力不从心,面向对象程序设 计语言就应运而生,C++ 就是其中的一个 成员。 ? ? ? ? 2.1.1 2.1.2 2.1.3 2.1.4 什么是面向对象的程序设计 面向对象程序设计的特点 类和对象作用 面向对象的软件开发 2.1.1什么是面向对象的程序设计 面向对象的程序设计的思路与人们日常生 活中处理问题的思路是相似的。一个复杂 的事物总是由许多部分组成的。例如,一 辆汽车是由发动机、底盘、车身和车轮等 部件组成。 当人们生产汽车时,不是先设计和制造发 动机,再设计和制造底盘,然后设计和制 造车身和车轮,而是分别设计和制造发动 机、底盘、车身和车轮,最后把它们组装 起来。这就是面向对象的基本思路。 1. 对象 客观世界中任何一个事物都可以看成一个 对象。对象可以是自然物体,也可以是社 会中的一种组织结构(班级、系、学校) 甚至一个图形、一项计划等都可以看成对 象。复杂的对象由简单的对象组成,例如 火车站对象包含售票处、行李房、候车室 和站台、信号灯、铁轨和通信设施等对象。 对象是构成系统的基本单位。任何一个对 象都具有静态和动态的特征。 ? 班级这个对象具有从属一个系和专业、学 生人数、组建时间等静态特征,它还具有 出操、学习、参加运动会等动态特征。静 态特征称为属性,动态特征称为行为,外 界给对象发出的信息一般称作消息。 ? 一个对象往往包含一组属性和一组行为。 如电视机包括生产厂家、品牌、屏幕尺寸 等是静态特征,开机、关机、选择频道、 调节音量、调节彩色等是动态特征。 面向对象的程序设计在设计一个系统时, 首先要确定系统中包括哪些对象,要分别 设计这些对象。在C++ 中,每个对象由数 据和函数(操作代码)两部分组成。数据 代表了属性,函数是对数据操作的代码, 代表了行为。例如三条边长是三角形的属 性,利用三条边长计算三角形面积、输出 计算结果,实现这些操作的代码就是对象 的行为,在程序设计中又称方法。调用对 象中的函数就是向对象传递一个消息,要 求对象执行某个操作。 2. 封装与信息隐蔽 对一个对象进行封装处理,把它的一部分 属性和功能向外界屏蔽,从外面看不到这 些属性和功能。例如录像机里有电路板和 机械控制部件,由于有机壳的保护,在外 面只看到一个黑箱子,在它的表面有若干 个按键。人们只需知道这些按键的功能即 可操作录像机。而不必知道录象机的工作 原理和系统结构。 ? 在设计一个对象时,要周密地考虑如何进 行封装,把不必让外界知道的部分隐蔽起 来。也就是说,把对象的内部实现和外部 行为分隔开来。 ? 封装性是面向对象程序设计的一个重要特 点,封装在此有两个含义: ? ①把有关的数据和操作代码封装在一个对 象中,形成程序中的一个基本单位,各个 对象之间相互独立,互不干扰。 ②把对象中的某些部分对外隐蔽,只留下 与外界联系的接口接收外界的消息,这种 对外界隐蔽的做法称为信息屏蔽。封装把 对象内部实现与外部分隔开,外界不了解 对象内部的具体细节,其实外界也不需要 了解。外界需要真正了解的是对象的对外 接口。C++ 对象中的公有函数就是对象的 对外接口。外界通过调用公有函数,访问 对象中的数据成员,完成指定的操作。 3. 抽象 抽象是表示同一类事物本质的方法,它关 注事物本质特征,对象是具体的,例如某 学院2006级计算机软件专业的一个学生是 一个对象,可以将一组同类对象的共同特 征抽象出来,从而形成类的概念。可以将 前面所提的某学院2006级计算机软件专业 的所有学生可抽象出2006级计算机软件专 业学生类。类是对象的抽象,而对象是类 的具体实例。 4. 继承与重用 如果已经建立名为A 的类,现要建立一个名为 B 的类,而B 类与A 类的内容基本相同,只是在 A 类基础上增加了一些属性和行为,这样只需在 A 类的基础上添加新内容即可,这就是面向对象程 序设计中的继承机制。 ? C++也具有继承机制,利用这个机制可以在一个 已有的类的基础上建立一个新类,这也是软件重 用思想,不仅可以利用自己过去建立的类,而且 还可以利用其他人放在类库中的类建立类,这就 大大缩短了软件开发周期。 5. 多态性 ? 多个相似而不完全相同的对象,收到外界给的同 一个消息时,它们各自执行不同的操作,这种现 象叫多态现象。 ? 例如在windows中,用鼠标双击一个文件对象时, 如果它是可执行文件则会执行文件中的程序,如 果它是一个文本文件则会启动一个编辑器来打开 这个文件,这就是面向对象程序设计中的多态性 一个实际例子。 ? 在C++中所谓多态性是指:由继承而产生的新类, 它的对象对同一个消息会作出不同的响应。 2.1.2面向对象程序设计的特点 图2.3 传统的面向过程程序设计是围绕功能进行 的,用一个函数实现一个功能,一个函数 可以使用任何一组数据,一组数据可以被 多个函数使用。当程序规模越来越大,数 据越来越多,操作越来越复杂,这种方法 容易出现错误,程序员往往感到难以应付。 面向对象程序设计采用的是另外一种思路。 它面对的是一个个对象。实际上每组数据 都有特定的用途,它是某种操作的对象。 也就是说,一组操作调用一组数据。例如 三角形的三条边长 a、b、c 它们只与计算 该三角形的面积、三角形的周长等操作有 关,与其他操作无关。我们把这三个数据 和计算三角形面积、周长等操作的代码放 在一起,封装成一个对象,与外界相对分 隔。这也符合客观世界的本来面目。

相关文档

类,对象和接口概要
第11章面向对象分析与设计概要
类与对象(new)概要
类图和对象图概要
第四章 创建和编辑二维图形对象(二).概要
Chapter类和对象ppt概要
面向对象技术与UML概要
面向对象分析与设计基础概要
上大微观经济学第17章 宏观经济学的目标和衡量.概要
电脑版