面向对象的设计思想.ppt
《面向对象的设计思想.ppt》由会员分享,可在线阅读,更多相关《面向对象的设计思想.ppt(37页珍藏版)》请在三一办公上搜索。
1、面向对象的设计思想,第二章,2,回顾,C+中的数据类型引用类型函数重载函数参数默认值C+中的动态内存分配,3,本章内容,程序设计思想面向对象编程(OOP)面向过程与面向对象的区别OOP的特性类的定义类的访问控制,4,程序设计方法,传统的结构化程序设计SP(Structured Programming)面向对象的程序设计OOP(Object Oriented Programming),5,结构化程序设计2-1,传统的程序设计方法可以归结为“程序=算法+数据结构”,将程序定义为处理数据的一系列过程。这种设计方法的着眼点是面向过程的,特点是数据与程序分离,即数据与数据处理分离。结构化程序设计的基本思
2、想是采用自顶向下、逐步细化的设计方法和单入单出的控制结构。其理念是将大型程序分解成小型、便于管理的任务。如果其中的一项任务仍然过大,则将它分解为更小的任务。这一过程将一直持续下去,直到将程序划分为小型的,易于编写的模块。,6,结构化程序设计2-2,7,面向过程方法分析问题,结构化程序设计是面向过程(procedure-oriented)的,8,结构化程序设计的缺点,结构化程序设计为处理复杂问题提供了有力手段,但到80年代末,这种设计方法逐渐暴露出以下缺陷:程序难以管理数据修改存在问题难以适应大型软件的设计程序可重用性差面向过程程序设计缺点的根源在于数据与数据处理分离,9,面向对象程序设计,面向
3、对象(Object Oriented)是认识事务的一种方法,是一种以对象为中心的思维方式面向对象的程序设计:对象=(算法+数据结构)程序=对象+对象+对象面向对象程序设计模拟自然界认识和处理事物的方法,将数据和对数据的操作方法放在一起,形成一个相对独立的整体对象(object),同类对象还可抽象出共性,形成类(class)。一个类中的数据通常只能通过本类提供的方法进行处理,这些方法成为该类与外部的接口。对象之间通过消息(message)进行通讯。面向对象程序设计不像过程性编程那样,试图使问题满足语言的过程性方法,而是试图让语言来满足问题的要求。其理念是设计与问题的本质特性相对应的数据格式。,1
4、0,基本概念对象,世界上所有的事物都可以称为对象(Object)。对象可以是有形的如:一台电视机等。也可以是无形的如:帐户、一项记录等。一个对象就是一个独立存在的客观事物,它由一组属性和对属性进行操作的一组操作构成。属性是对象静态特征的描述操作是对象动态特征的描述属性和操作是对象的两大要素。如电视的属性有:品牌、尺寸、重量等。操作有:收视、选台、音量调节等。,11,基本概念类,是一个抽象的概念,用来描述某一类对象所共有的、本质的属性和类行为根据抽象的原则对客观事物进行归纳和划分,12,类和对象的区别,如何区分类和对象以“人”和“张三”为例“人”描述了所有人(包括“张三”)都具有的属性和行为,如
5、有姓名、身高、体重,有鼻子、眼睛、四肢,能交流、有思维等等类(“人”)描述的概念是抽象的“人”的姓名是什么?“人”的身高是什么?对象(“张三”)是具体的“张三”的姓名是“张三”“张三”的身高是185CM类和对象的例子:教室五楼多媒体教室、四楼语音教室国家中国、美国学校福州大学、厦门大学,13,基本概念消息,对象可以响应消息我们把对象之间产生相互作用所传递的信息称做消息。C+将“向对象发消息”处理成“调用对象的某个成员函数”,14,面向对象编程方法的特性,程序设计的重点在数据而不是函数程序由对象组成,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。对象之间通
6、过相互协作来完成功能大多数对象的定义以数据为中心函数与相关的数据紧密结合数据可以被隐藏很容易扩充新的数据和函数,15,面向对象编程的优缺点,面向对象编程的优点:易维护:可读性高,即使改变需求,由于继承的存在,维护也只是在局部模块,维护起来是非常方便和较低成本的。质量高:可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量。效率高:在软件开发时,根据设计的需要对现实世界的事物进行抽象,产生类。这样的方法解决问题,接近于日常生活和自然的思考方式,势必提高软件开发的效率和质量。易扩展:由于继承、封装、多态的特性,自然设计出高内聚、低耦合的系统结构,使得系统更灵活、更容易
7、扩展,而且成本较低。面向对象编程的缺点:运行效率会下降10%左右,16,面向对象的基本特征,抽象封装和数据隐藏继承多态,17,抽象的设计思路,数据抽象化为属性 处理过程抽象化为操作(方法)例如:当建立一个图书管理系统时,通过直觉知道系统里一定要有图书管理员/读者/书这些对象,而其中读者的行为含有借书/还书,学生还有其相应的学号/姓名/班级等内容用面向对象方法来认识青蛙,青蛙属性.颜色重量行为.跳捉害虫,18,封装和数据隐藏,封装是指按照信息屏蔽的原则,把对象的属性和操作结合在一起,构成一个独立的对象。通过限制对属性和操作的访问权限,可以将属性“隐藏”在对象内部,对外提供一定的接口,在对象之外只
8、能通过接口对对象进行操作。封装性增加了对象的独立性,从而保证了数据的可靠性。外部对象不能直接操作对象的属性,只能使用对象提供的服务。,我们不用关心电视机的内部工作原理,电视机提供了选台、调节音量等功能让我们使用。,19,类的定义2-1,C+通过建立数据类型类来支持封装和数据隐藏。一个定义完好的类可以作为独立模块使用。类的定义格式分为说明部分和实现部分说明部分包含数据成员和成员函数说明实现部分是用来对成员函数的定义类的一般定义格式如下:,class public:;protected:;private:;,20,类的定义2-2,class是定义类的关键字是数据类型说明符,是一个标识符,用于唯一地
9、标识一个类(新的数据类型),类名后面花括号扩起来的部分是类体(Class Body)。类体中定义了类成员表(Class Member List)数据成员(Data Member)成员函数(Member Function)public、protected和private是访问限定符(access specifier)一般在类体内先说明公有成员,它们是用户所关心的,后说明私有成员,它们是用户不感兴趣的,但此顺序并不是必须的。在类的说明部分之后必须加分号“;”。类的定义放在一个头文件中(.h),供其它需要使用该类的文件包含类的实现部分放在一个源文件中(.cpp),该文件需要包含定义类的头文件类的定义
10、和实现可以放在一个文件里,但不提倡,因为结构不清晰,影响了程序的可读性,21,学生类Student的定义,/student.h文件class CStudentpublic:void SetStudent(char*name,int age,int score5);void PrintStudent();int GetTotal();float GetAvg();private:char m_no4,m_name21;int m_age,m_score5;/分号不能省略/CStudent.cpp文件include“student.h”int CStudent:GetTotal()/实现省略Flo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 设计 思想
链接地址:https://www.31ppt.com/p-5372187.html