51.4名字空间域和类域 在类域中不仅有数据和函数成员,也可以有类型说明,可以称为类成 员,或成员类,其作用域为类域,出了类说明之外无效。例如嵌套类 (nested class) class student< public class studentI /成员类、嵌套类 int value i public i 自非非 }; prIvate studentID id i /嵌套类说明的私有对象 char name[20]i] student s1 S2 i studenta studentid kk
5.1.4 名字空间域和类域 在类域中不仅有数据和函数成员,也可以有类型说明,可以称为类成 员,或成员类,其作用域为类域,出了类说明之外无效。例如嵌套类 (nested class): class student { public : class studentID{ //成员类、嵌套类 int value ; public : …… } ; private : studentID id ; //嵌套类说明的私有对象 char name[20] ;} student s1 , s2 ; student::studentID kk ;
52从面向过程到面向对象 上世纪六十年代中后期软件危机发生之后,面向过 程( procedure- oriented)的结构化程序设计 ( structured programming,SP)成为主流。结构化程 序设计的提出与发展是伴随软件日益庞大和复杂进行的, 但是当软件复条到一定的程度后,结构化程序设计也不 能满足辯要。当软件规楳超过一定的尺度后,采用结构 化程序设计,其开墩和维护就燧来越难控制。萁根本的 原因就在于面向过程的结枘化程序设计的方法与现奥世 界(包括主观世界和客观世界)往往部不一致,结构化 程序设计的思想往往很难贯彻到底
5.2 从面向过程到面向对象 上世纪六十年代中后期软件危机发生之后,面向过 程 ( procedure-oriented ) 的 结 构 化 程 序 设 计 (structured programming,SP)成为主流。结构化程 序设计的提出与发展是伴随软件日益庞大和复杂进行的, 但是当软件复杂到一定的程度后,结构化程序设计也不 能满足需要。当软件规模超过一定的尺度后,采用结构 化程序设计,其开发和维护就越来越难控制。其根本的 原因就在于面向过程的结构化程序设计的方法与现实世 界(包括主观世界和客观世界)往往都不一致,结构化 程序设计的思想往往很难贯彻到底
52从面向过程到面向对象 化( divide and conquer, stepwise refinement)"“喜 在结构化程序设计中。采用的是“自顶向下,遝步 思想。咆的具体操作方法是模块化,是按功能来分的,所 以也称功能块。也就是从一般事物中抽象出来的操作,在 C++中称为一个函数,一个函数解决一个问题,即实现一 个功能或一个操作。当程序规模和复杂性达到一定程度时 不可迣免地引入大量的全局变量,这时模化没法坚持到 底。比如一个实时管理系统,当管理的规则发生大的变化, 程序的维护往往相当困难。为某一处修改通用的函数往往 会影响其它部分,牵一发而动全身。可维护性差成了制约 结构化程序设计疝用的瓶颈。所以,必须量新选行功能抽 象,必须量新建立模块间联系的规则
5.2 从面向过程到面向对象 在结构化程序设计中,采用的是“自顶向下,逐步细 化(divide and conquer,stepwise refinement)”的 思想。它的具体操作方法是模块化,是按功能来分的,所 以也称功能块。也就是从一般事物中抽象出来的操作,在 C++中称为一个函数,一个函数解决一个问题,即实现一 个功能或一个操作。当程序规模和复杂性达到一定程度时 不可避免地引入大量的全局变量,这时模块化没法坚持到 底。比如一个实时管理系统,当管理的规则发生大的变化, 程序的维护往往相当困难,为某一处修改通用的函数往往 会影响其它部分,牵一发而动全身。可维护性差成了制约 结构化程序设计应用的瓶颈。所以,必须重新进行功能抽 象,必须重新建立模块间联系的规则
52从面向过程到面向对象 对的概念是面向对技术的核心所在。面向对象技术中 的对就是现舆世界中棊个具体的物理实体在计算机逻楫中的 映射和体淝。比如你所拥有的一部移动电话,它是现实世界中 的一个实体。它由天线、发射部件、接收部件、显示屏、按 专用梟成电路花片及外亮组成:它有着其奥在的功能。可以打 电话。可以发短消息。可以存储、输入和编楫各种个人信息 甚至可以上网。这样一个实体可以在计算机世界中映射为一个 计算机可以理解、可以操纵、具有前面所叙述的属性和操作的 对泉。又如你们所拥有的一辆自行车,它由车架、车轮、脚踏 和传动机枘、变速机构组成。它具有代步功能。咆可以进行 变骑行,特别要强调的是它有一些特征可以把你的这辆自行 车与其他自行车区分开来,其中最量要的是铡印号。这些都可 以在面向对隶的程序中用对泉及其属性和操作模拟出来
5.2 从面向过程到面向对象 对象的概念是面向对象技术的核心所在。面向对象技术中 的对象就是现实世界中某个具体的物理实体在计算机逻辑中的 映射和体现。比如你所拥有的一部移动电话,它是现实世界中 的一个实体。它由天线、发射部件、接收部件、显示屏、按键、 专用集成电路芯片及外壳组成;它有着其实在的功能,可以打 电话,可以发短消息,可以存储、输入和编辑各种个人信息, 甚至可以上网。这样一个实体可以在计算机世界中映射为一个 计算机可以理解、可以操纵、具有前面所叙述的属性和操作的 对象。又如你们所拥有的一辆自行车,它由车架、车轮、脚踏 和传动机构、变速机构等组成,它具有代步功能,它可以进行 变速骑行,特别要强调的是它有一些特征可以把你的这辆自行 车与其他自行车区分开来,其中最重要的是钢印号。这些都可 以在面向对象的程序中用对象及其属性和操作模拟出来
52从面向过程到面向对象 现实世界中的实体可 计算机 现实世界 以抽拿出类别的概念。对 世界 客观世界 应于计算机世界就有一个 对象 实体 类( class)的概念,因为 类是一个抽象的概念的对 实例化 抽象|映 抽 应体,所以计算机不给宅 射丰观世界象 分配内存,只给对象分配 内存。图53表达了计算机 类 抽象类 世界与现实世界之间的对 别 应关条。 图53对象、实体与类
5.2 从面向过程到面向对象 对象 类 计 算 机 世 界 实体 抽象类 别 现实世界 客观世界 抽 象 抽象 实 例 化 映 射 主观世界 图5.3对象、实体与类 现实世界中的实体可 以抽象出类别的概念。对 应于计算机世界就有一个 类(class)的概念,因为 类是一个抽象的概念的对 应体,所以计算机不给它 分配内存,只给对象分配 内存。图5.3表达了计算机 世界与现实世界之间的对 应关系