C面向
C++面向对象 程序设计
第一章 面向对象程序设计概述
第一章 面向对象程序设计概述
1.1什么是面向对象程序设计 1.1.1面向过程程序设计的基本概念 考虑一个银行系统,该系统允许顾客开设不同类型的银 行账户,包括现金账户、支票账户和贷款账户,同时允许 顾客存款、取款和转帐。 首先考虑数据结构: struct account i char *name /姓名 unsigned long accountId;/账号* foat balance: /余额* float interested /年利息* char accountType;/账户类型(现金x、支票z和贷款d)
1.1.1 面向过程程序设计的基本概念 考虑一个银行系统,该系统允许顾客开设不同类型的银 行账户,包括现金账户、支票账户和贷款账户,同时允许 顾客存款、取款和转帐。 首先考虑数据结构: struct account { char *name; /* 姓名 */ unsigned long accountId; /* 账号 */ float balance; /* 余额 */ float interestYTD; /* 年利息*/ char accountType; /* 账户类型(现金x、支票z和贷款d) }; 1.1 什么是面向对象程序设计 1
再考虑用三个过程分别负责存款、取款和转帐。我们可以三个 C函数: MakeDeposit ( WithDraw O Transfer () 这种数据结构与过程分离有很多问题,例如增加一种账户类型-退 休账户(t),则三个C函数都必须重新编写
再考虑用三个过程分别负责存款、取款和转帐。我们可以三个 C函数: MakeDeposit() WithDraw() Transfer() 这种数据结构与过程分离有很多问题,例如增加一种账户类型---退 休账户(t),则三个C函数都必须重新编写。 2
12面向对象程序设计的基本概念 面向对象程序设计是一种新的程序设计范型。面向对象程序的主 要结构特点是: 第一,程序一般由类的定义和类的使用两部分组成,在主程序中定 义对象并规定它们之间传递消息的规律; 第二,程序中的一切操作都是通过向对象发送消息来实现的,对象 接收到后,启动有关方法完成相应操作。 数据与定义在它上面的用户需要的操作构成一个整体。 当把对银行账户的操作定义在数据上,银行账户就是一个类,称为 银行账户类。我们可以建立许多具体的银行账户,而每一个具体 的银行账户就是银行账户类的一个对象
1.1.2 面向对象程序设计的基本概念 面向对象程序设计是一种新的程序设计范型。面向对象程序的主 要结构特点是: 第一,程序一般由类的定义和类的使用两部分组成,在主程序中定 义对象并规定它们之间传递消息的规律; 第二,程序中的一切操作都是通过向对象发送消息来实现的,对象 接收到后,启动有关方法完成相应操作。 数据与定义在它上面的用户需要的操作构成一个整体。 当把对银行账户的操作定义在数据上,银行账户就是一个类,称为 银行账户类。我们可以建立许多具体的银行账户,而每一个具体 的银行账户就是银行账户类的一个对象。 3
class BankAccount i char name /姓名 unsigned long accountId;/账号* float balance; /余额 float interested /年利息 public: void Make Deposit (float amount) float With Draw(float amount); bool Transfer BankAccount to. float amount)
class BankAccount { char *name; /* 姓名 */ unsigned long accountId; /* 账号 */ float balance; /* 余额 */ float interestYTD; /* 年利息*/ public: void MakeDeposit(float amount); float WithDraw(float amount); bool Transfer(BankAccount & to, float amount); }; 4
12对象与类 ,21对象与类概念 对象是现实世界的一个实体,其特性是 (1)每一个必须有一个名字以区别于其他对象; (2)用属性来描述它的某些特征; (3)有一组操作,每一个操作决定对象的一种行为。 类是一组具有共同的属性特征和行为特征的对象的抽象。 类名:教师类 对象 对象 属性:姓名:字符串属性:姓名:黎明 属性:姓名: 学历:字符串 年龄:30 年龄: 职称:字符串 学历:博士 学历: 专业:字符串 职称:教授 职称: 动作:说自己的年龄 专业:计算机软件 专业: 吃饭 动作:说自己的年龄动作:说自己的年龄 授课 吃饭 吃饭 授课 授课
1.2 对象与类 1.2.1 对象与类概念 对象是现实世界的一个实体,其特性是: (1) 每一个必须有一个名字以区别于其他对象; (2) 用属性来描述它的某些特征; (3) 有一组操作,每一个操作决定对象的一种行为。 类是一组具有共同的属性特征和行为特征的对象的抽象。 类名: 教师类 对象 对象 属性: 姓名:字符串 年龄:整数 学历:字符串 职称:字符串 专业:字符串 动作: 说自己的年龄 吃饭 授课 属性: 姓名:黎明 年龄:30 学历:博士 职称:教授 专业:计算机软件 动作: 说自己的年龄 吃饭 授课 属性: 姓名: 年龄: 学历: 职称: 专业: 动作: 说自己的年龄 吃饭 授课 5
什么是对象( object 对象是面向对象(O-O)方法的核心。关于对象可以从如下几点说 明 对象是人们要进行研究(感兴趣)的任何事物,从最简的整数到航 天飞都可以看成对象 1)有形的实体。指一切看得见摸得着的实物。 2)作用。指人或组织所起的作用。医生、公司、部门等。 3)事件。在特定时间发生的事。如飞行、演出、开会等 4)性能说明。如机床厂对机床的性能说明。 对象不仅能表示结构化的数据,而且也能表示抽象的事件、规则 以及复杂的工程实体。因此对象具有很强制表达能力和描述功能 对象实现了数据与操作结合 对象有状态用来描述它的某些特征,通常用数据来描述。 对象还应当有操作,用以改变对象的状态,对象及其操作就是对 象的行为。为此改变了传统方法中将数据与操作(亦称函数或过 程)相分离的做法,实现了将数据与操作封装在对象的统一体中
什么是对象(object ) 对象是面向对象(O-O)方法的核心。关于对象可以从如下几点说 明: *对象是人们要进行研究(感兴趣)的任何事物,从最简的整数到航 天飞都可以看成对象 1)有形的实体。指一切看得见摸得着的实物。 2)作用。指人或组织所起的作用。医生、公司、部门等。 3)事件。在特定时间发生的事。如飞行、演出、开会等。 4)性能说明。如机床厂对机床的性能说明。 对象不仅能表示结构化的数据,而且也能表示抽象的事件、规则 以及复杂的工程实体。因此对象具有很强制表达能力和描述功能。 *对象实现了数据与操作结合 对象有状态用来描述它的某些特征,通常用数据来描述。 对象还应当有操作,用以改变对象的状态,对象及其操作就是对 象的行为。为此改变了传统方法中将数据与操作(亦称函数或过 程)相分离的做法,实现了将数据与操作封装在对象的统一体中。 6
对象应具有唯一识别的功能 对象有唯一对象标识符( Object Identify,简称OI)它可唯一,且 永久地标识对象。即使二完全一样的茶杯也是二个对象有甲、乙之 分 对象必须参与一个或一个以上的对象类。 对象应参与对象类,并是类的一个实例。 有自己内部的和对外部的动作,称为操作。 可以通过指令、命令或称消息发动它的动作。 总之对象是现实世界中可以区分的一个事、物,它有独立性又 有相关性
*对象应具有唯一识别的功能 对象有唯一对象标识符(Object Identify,简称OID)它可唯一,且 永久地标识对象。即使二完全一样的茶杯也是二个对象有甲、乙之 分 *对象必须参与一个或一个以上的对象类。 对象应参与对象类,并是类的一个实例。 *有自己内部的和对外部的动作,称为操作。 *可以通过指令、命令或称消息发动它的动作。 总之对象是现实世界中可以区分的一个事、物,它有独立性又 有相关性。 7
对象类( Object class) 对象类是(O0)方法的一个重要抽象概念,称类 将具有相同结构、操作,并遵守相同约束规则的对象聚合成一组, 这组对象集合就称为类。它是把许多对象进行抽象。 如茶杯有不同大小的茶杯,不同材料,不同形状,可可完全相同 的许多茶杯--茶杯的类 具体对类进行定义时,最低限度应包括如下内容 1)类名。 2)内部表示。 3)对外接口。对于操纵类实例对象的外部可施力的操 作 )接口如何在内部动作的。内部实现。 对类的一个具体称为对象或实例或实体 类最鲜明的特色是将数据的结构与数据的操作都封装在类中,并实 现了类的外部特性与类实现的隔离。也就实现了将使用类和对象 的使用者,与具体设计对象和类的开发者区分开,从而有良好的 模块化特性进而为复杂大系统的分析、设计,实现提供先进的方 法
对象类(Object class) 对象类是(O-O)方法的一个重要抽象概念,称类。 将具有相同结构、操作,并遵守相同约束规则的对象聚合成一组, 这组对象集合就称为类。它是把许多对象进行抽象。 如茶杯 有不同大小的茶杯,不同材料,不同形状,可可完全相同 的许多茶杯----茶杯的类 具体对类进行定义时,最低限度应包括如下内容: 1)类名。 2)内部表示。 3)对外接口。对于操纵类实例——对象的外部可施力的操 作。 4)接口如何在内部动作的。内部实现。 对类的一个具体称为对象或实例或实体。 类最鲜明的特色是将数据的结构与数据的操作都封装在类中,并实 现了类的外部特性与类实现的隔离。也就实现了将使用类和对象 的使用者,与具体设计对象和类的开发者区分开,从而有良好的 模块化特性进而为复杂大系统的分析、设计,实现提供先进的方 法。 8