面向对象基础知识课件.ppt
《面向对象基础知识课件.ppt》由会员分享,可在线阅读,更多相关《面向对象基础知识课件.ppt(49页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、面向对象程序设计引论面向对象程序设计引论 C+是以是以C语言为基础,增加了面向对象程语言为基础,增加了面向对象程序设计的功能,适合编制复杂的大型软件系统。序设计的功能,适合编制复杂的大型软件系统。重点:重点:理解理解面向对象面向对象的思想、对象、类、继承、的思想、对象、类、继承、多态性等概念多态性等概念 为什么要面向为什么要面向对象?对象?程序设计高级语言可分为四代:程序设计高级语言可分为四代:第一代第一代对数学表达式有很强的运算处理能力对数学表达式有很强的运算处理能力,如,如FORTRAN;第二代第二代如何有效表达如何有效表达算法算法,如,如PASCAL,C;第三代第三代引入了抽象数据类型引
2、入了抽象数据类型,如,如Ada;第四代第四代面向对象程序设计面向对象程序设计,如,如Simula、Smalltalk、Object-C、C+,Java;1 面向过程程序设计面向过程程序设计面向过程:面向过程:采用模块化、按照采用模块化、按照解决问题的步骤分解决问题的步骤分 步设计程序。步设计程序。面向过程设计思想的核心面向过程设计思想的核心功能分解功能分解功能分解功能分解 面向过程设计将数据结构和过程作为面向过程设计将数据结构和过程作为两个实体两个实体两个实体两个实体对待,对待,重点在过重点在过重点在过重点在过程程程程。在在面面向向对对象象程程序序设设计计方方法法出出现现之之前前,占占主主流流
3、的的是是结结构构化化程程序序设设计计方方法法,即即面面向向过过程程的的程程序序设设计计语言。语言。举例说明:银行系统该系统允许顾客开设不同的银行账户,其中该系统允许顾客开设不同的银行账户,其中包括现金账户、支票账户和贷款账户,同时包括现金账户、支票账户和贷款账户,同时允许顾客存款、取款和转账。允许顾客存款、取款和转账。根据面向过程的程序设计方法根据面向过程的程序设计方法 step 1:将银行系统分解成三个模块:将银行系统分解成三个模块:存款存款MakeDeposit 取款取款WithDraw 转账转账Transfer step 2:接着建立一个简单的数据结构接着建立一个简单的数据结构:stru
4、ct account char name;/*姓名姓名*/unsigned long accountId;/*账号账号*/float balance;/*余额余额*/float interestYTD /*年利息年利息*/Step 3:按照一定的操作顺序编写程序。按照一定的操作顺序编写程序。面向对象思想的引入面向对象思想的引入面向过程的设计存在以下缺点:面向过程的设计存在以下缺点:1、可重用性差、可重用性差 2、可维护性差、可维护性差 3、安全性差、安全性差 产生主要原因:产生主要原因:数据和过程的分离数据和过程的分离 解决途径:解决途径:引入面向对象程序设计思想引入面向对象程序设计思想对象与
5、类是面向对象程序设计中最重要的概对象与类是面向对象程序设计中最重要的概念。念。本节要求:本节要求:理解并掌握对象、类的概念理解并掌握对象、类的概念,以及它们,以及它们之间的关系之间的关系2 面向对象面向对象对象与类是面向对象程序设计中最重要的概对象与类是面向对象程序设计中最重要的概念。念。本节要求:本节要求:理解并掌握对象、类的概念理解并掌握对象、类的概念,以及它们之,以及它们之间的关系间的关系对象是客观存在的实体。对象是客观存在的实体。eg:one person a pen a cat a bird.什么是对象?什么是对象?对象有两方面的特征对象有两方面的特征其一,状态特征。笔的大小,颜色等
6、,其一,状态特征。笔的大小,颜色等,其二,行为特征。鸟会飞,会跳跃等。其二,行为特征。鸟会飞,会跳跃等。现实世界由形形色色的现实世界由形形色色的“对象对象”构成。对象由构成。对象由静态属性和动态行为构成。静态属性和动态行为构成。对象对象=属性属性+行为行为对象应具有的特性:对象应具有的特性:必须有一个区别于其它对象的名字必须有一个区别于其它对象的名字 用用属性属性(或叫状态)来描述它的某些特征(或叫状态)来描述它的某些特征 有一组有一组操作操作,每一个操作决定对象的一种,每一个操作决定对象的一种行为行为面向对象程序设计中:面向对象程序设计中:对象对象=数据数据+操作操作 注意:对象的状态不仅仅
7、是初等的数据类型,注意:对象的状态不仅仅是初等的数据类型,许多对象可以将另一个对象作为他们状态的许多对象可以将另一个对象作为他们状态的一部分。一部分。一辆车一辆车 发动机发动机发动机发动机座位座位车轮车轮车轮车轮车轮车轮座位座位座位座位气缸气缸类(class)什么是类?什么是类?类是具有共同特征类是具有共同特征的对象的抽象。的对象的抽象。eg:Person Car Cat Bird.类类:对对一一组组具具有有共共同同的的属属性性特特征征和和行行为为特特征征的的对对象象的抽象。的抽象。类是多个对象的抽象,对象是类的一个实例类是多个对象的抽象,对象是类的一个实例 如如各各种种鸟鸟具具有有羽羽毛毛,
8、翅翅膀膀,嘴嘴,会会飞飞。把把这这些些鸟鸟的的对对象象归归为为一一类类,即即鸟鸟类类,鸟鸟类类具具有有多多个个对对象象共共有有的的状状态态和和行行为为。在在面面向向对对象象程程序序设设计计中中,正正是采用类的概念定义一组具有共同特征的对象。是采用类的概念定义一组具有共同特征的对象。类的概念以及与对象的关系类的概念以及与对象的关系类和对象是类和对象是抽象与具体抽象与具体的关系。的关系。类只在编译时存在;对象是运行时存在的实体。类只在编译时存在;对象是运行时存在的实体。例如:教师王明是一个对象例如:教师王明是一个对象 对象名:王明对象名:王明 对象的属性:对象的属性:年龄:年龄:30 学历:学历:
9、博士博士 职称:教授职称:教授 专业:计算机软件专业:计算机软件 对象的操作;对象的操作;吃饭吃饭 授课授课一个个象王明一样的具体的老师构成了世界上没有一个个象王明一样的具体的老师构成了世界上没有的抽象的的抽象的“教师教师”类。类。对象的交互在面向对象程序设计中,对象之间也需要联系,我在面向对象程序设计中,对象之间也需要联系,我们称为对象的交互。们称为对象的交互。消息传递消息传递面向对象程序设计技术提供的一种机面向对象程序设计技术提供的一种机制,允许一个对象与另一个对象的交互。制,允许一个对象与另一个对象的交互。消息消息一个对象向另一个对象发出的请求。一个对象向另一个对象发出的请求。eg:顾客
10、对象可以请求银行账户对象的服务,如顾客对象可以请求银行账户对象的服务,如“存入存入300元元”、“取出取出200元元”等,当银行账户对象接等,当银行账户对象接到请求后,执行相应操作到请求后,执行相应操作方法方法也称为操作,类似于面向过程设计中所说也称为操作,类似于面向过程设计中所说的函数。方法定义了一系列计算步骤。的函数。方法定义了一系列计算步骤。消息具有三个性质:消息具有三个性质:1、同一个对象可以接收不同形式的多个消息,做、同一个对象可以接收不同形式的多个消息,做出不同的响应出不同的响应 2、相同形式的消息可以传递给不同的对象,所做、相同形式的消息可以传递给不同的对象,所做出的响应可不同。
11、出的响应可不同。3、消息的发送可以不考虑具体的接受者、消息的发送可以不考虑具体的接受者 对象之间的消息传递机制实际上对应于面向过程对象之间的消息传递机制实际上对应于面向过程设计的过程调用,其实质是方法设计的过程调用,其实质是方法(函数)的调用函数)的调用消息的分类消息的分类 公有消息公有消息由其他对象直接发送给它的由其他对象直接发送给它的消息。被调用的方法,在所属的类中由消息。被调用的方法,在所属的类中由public说明说明 私有消息私有消息自己向自己发送的消息,由自己向自己发送的消息,由private 说明说明 类的确定与划分面向对象设计是将系统分解成若干对象,对象之间的面向对象设计是将系统
12、分解成若干对象,对象之间的作用构成了整个系统。作用构成了整个系统。如何把实际问题的事物汇聚成一个个的如何把实际问题的事物汇聚成一个个的“类类”,是面向,是面向对象程序设计的一个难点。类划分得当,既有利于对对象程序设计的一个难点。类划分得当,既有利于对程序扩充,又可以提高代码的可重用性。程序扩充,又可以提高代码的可重用性。如何确定和划分类?如何确定和划分类?基本原则:寻求一个大系统中事物的共性,将具有基本原则:寻求一个大系统中事物的共性,将具有共性的系统成为一个确定的类。共性的系统成为一个确定的类。(类不是函数的集合类不是函数的集合)3 面向对象程序设计面向对象程序设计 面向对象是一种面向对象是
13、一种主体动作模式主体动作模式面向对象程序设计方法:面向对象程序设计方法:把问题看成由许多把问题看成由许多彼此相互联系的对象组成。彼此相互联系的对象组成。面向对象方法的出发点:面向对象方法的出发点:从认识系统的方法从认识系统的方法角度,来分析、设计和实现一个系统角度,来分析、设计和实现一个系统,符合人符合人们的日常自然的思维习惯。们的日常自然的思维习惯。面向对象程序是如何设计的?面向对象程序是如何设计的?在面向对象的程序设计中,在面向对象的程序设计中,重点重点在于在于数据数据,而不是过程。数据构成了软件分解的基础,而不是过程。数据构成了软件分解的基础,而不是功能。而不是功能。以银行系统为例:以银
14、行系统为例:解决银行账户的问题重点解决银行账户的问题重点应该放在银行账户上应该放在银行账户上Step1:确定银行账户的基本数据;确定银行账户的基本数据;Step2:根据顾客在账户(数据)中要做什么,根据顾客在账户(数据)中要做什么,提出相应的操作提出相应的操作;注意:注意:不能将数据和相应操作看成两个分离的实体,而是不能将数据和相应操作看成两个分离的实体,而是作为一个完整的实体对待。把银行账户的操作定义在数据上,作为一个完整的实体对待。把银行账户的操作定义在数据上,在面向对象程序设计方法中,在面向对象程序设计方法中,银行账户就是一个类,称为银银行账户就是一个类,称为银行账户类,而每个具体的银行
15、账户就是银行账户类的一个对行账户类,而每个具体的银行账户就是银行账户类的一个对象。象。Class BankAccout public:void MakeDeposit(float amount);float WithDraw(float amount);bool Transfer(BankAccount&to,float amount);private:float balance;float interestYTD;char*owner;int account_number;面向对象程序设计的定义面向对象程序设计的定义定义:定义:面向对象程序设计是一种新的程序设计范型。面向对象程序设计是一种新
16、的程序设计范型。主要特征:程序主要特征:程序=对象对象+消息消息 主要特点是:主要特点是:1 1、程序由类的定义和类的使用两部分组成,在、程序由类的定义和类的使用两部分组成,在主程序中定义各对象并规定它们之间传递消息的规主程序中定义各对象并规定它们之间传递消息的规律。律。2 2、程序中的一切操作都是通过向对象发送消息、程序中的一切操作都是通过向对象发送消息来实现的,对象接收到消息后,启动有关方法完成来实现的,对象接收到消息后,启动有关方法完成相应操作。相应操作。3 3、类有继承关系产生相互间的关系。、类有继承关系产生相互间的关系。面向对象最突出的三个特性:面向对象最突出的三个特性:封装性封装性
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 基础知识 课件
限制150内