面向对象设计思想

上传人:t****d 文档编号:243014832 上传时间:2024-09-13 格式:PPT 页数:41 大小:189.50KB
返回 下载 相关 举报
面向对象设计思想_第1页
第1页 / 共41页
面向对象设计思想_第2页
第2页 / 共41页
面向对象设计思想_第3页
第3页 / 共41页
点击查看更多>>
资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,面向对象设计思想,面向对象设计思想,1,主要内容,面向过程的设计方法,面向对象的设计方法,OOP的基本特点,c+中的类,面向对象(OO)开发,类与对象关系的图形标识(UML简介),2,结构化程序设计诞生于20世纪60年代,结构化程序设计的基本思想是采用自顶向下,逐步求精的设计方法和单入口单出口的控制结构。,结构化程序设计方法将解决问题的重点放在如何实现过程的细节方面,把数据和对数据的操作函数截然分开,以数据结构为核心,围绕着功能实现或操作流程来设计程序。,面向过程的设计方法(1/2),3,面向过程的设计方法(2/2),重点:,如何实现细节过程,将数据与函数分开。,形式:,主模块+若干个子模块(main()+子函数)。,特点:,自顶向下,逐步求精功能分解。,缺点:,效率低,程序的可重用性差。,4,面向对象的设计方法(1/4),目的:,实现软件设计的产业化。,观点:,自然界是由实体(对象)所组成。,程序设计方法:,使用面向对象的观点来描述模仿并处理现实问题。,要求:,高度概括、分类、和抽象。,5,面向对象的设计方法(2/4),面向对象程序设计认为,现实世界是由一系列彼此相关并且能够互相通信的实体组成。,实体对象,对象的共性的抽象描述类,一个公司的人员由它的全体员工组成,员工之间存在合作关系、上下级关系等工作关系,员工之间通过口头或书面语言进行交流和资源共享。,员工对象,员工组成了一类具有共性的人群本公司雇员,6,面向对象的设计方法(3/4),每个对象都具有自己的属性和行为,整个程序是由一系列相互作用的对象构成的,对象之间的交互通过发送消息来实现。,在一个公司里,每个员工都有自己的姓名、编号、职务、薪资数额等属性(独一无二)对象的属性,每一个人都有完成自己工作职责的能力对象的行为,7,面向对象的设计方法(4/4),用面向对象的观点和方法设计程序,属性和行为都被很好的封装在对象中,对数据的访问权限可以得到有效的控制。,对象向外界提供必要的外部接口,而将实现的细节隐藏起来,员工的特征属性只有本人通过合法途径进行修改,其他人无权修改。(公开),薪资数额在一定程度上是保密的,只有它的上级和财务部门的相关人员能够知道,其他人无权过问。,8,面向对象程序设计(OOP)的基本特点,抽象,封装,继承与派生,多态,9,抽象,抽象是对具体对象(问题)进行概括,抽出这一类对象的公共性质并加以描述的过程。,先注意问题的本质及描述,其次是实现过程或细节。,数据抽象:描述某类对象的属性或状态(对象相互区别的物理量)。,代码抽象:描述某类对象的共有的行为特征或具有的功能。,抽象的实现:通过类的声明。,10,抽象实例钟表,数据抽象:,int,Hour, int,Minute, int,Second,代码抽象:,SetTime(),ShowTime(),11,抽象实例钟表类,class Clock,public,:,void,SetTime,(int NewH, int NewM, int NewS); void,ShowTime,();,private,:,int Hour,Minute,Second;,;,12,抽象实例人,数据抽象:,char *,name,char *,gender,int,age,int,id,代码抽象:,生物属性角度:,GetCloth,(),Eat,(),Step,(),社会属性角度:,Work,(),Promote,() ,13,封装,将抽象出的数据成员、代码成员相结合,将它们视为一个整体。,目的是曾强安全性和简化编程,使用者不必了解具体的实现细节,而只需要通过外部接口,以特定的访问权限,来使用类的成员。,实现封装:类声明中的,14,封装,实例:,class Clock,public,: void,SetTime,(int NewH,int NewM, int NewS); void,ShowTime,();,private,: int Hour,Minute,Second;,;,边界,特定的访问权限,外部接口,15,继承与派生,对象之间是有联系的,这是支持层次分类的一种机制,允许程序员在保持原有类特性的基础上,进行更具体的说明。,轮船:客轮、货轮,人类的遗传,实现:声明派生类,继承和派生:实现了代码的可扩充性和可重用性,16,多态性,多态:同一名称,不同的功能实现方式。,目的:达到行为标识统一,减少程序中标识符的个数。,实现:重载函数和虚函数,两个例子,打球(打篮球、打排球、打羽毛球),呼吸(一般动物的呼吸和鱼的吐泡泡的呼吸方式),17,c+中的类,类是具有相同属性和行为的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和行为两个主要部分。,利用类可以实现数据的封装、隐藏、继承与派生。,利用类易于编写大型复杂程序,其模块化程度比C中采用函数更高。,18,类的声明形式,类是一种用户自定义类型,声明形式:,class 类名称,public:,公有成员,(外部接口),private:,私有成员,protected:,保护型成员,19,公有类型成员,在关键字public,后面声明,它们是类与外部的接口,任何外部函数都可以访问公有类型数据和函数。,20,私有类型成员,在关键字private,后面声明,只允许本类中的函数访问,而类外部的任何函数都不能访问。,如果紧跟在类名称的后面声明私有成员,则关键字private可以省略。,21,保护类型,与private类似,其差别表现在继承与派生时对派生类的影响不同。,22,类的成员,class Clock,public: void,SetTime,(int NewH, int NewM, int NewS); void,ShowTime,();,private:,int,Hour,Minute,Second,;,;,成员数据,成员函数,23,void Clock : SetTime(int NewH, int NewM, int NewS),Hour=NewH;,Minute=NewM;,Second=NewS;,void Clock : ShowTime(),coutHour:Minute:Second;,19,24,成员数据,与一般的变量声明相同,但需要将它放在类的声明体中。,25,成员函数,在类中说明原形,可以在类外给出函数体实现,并在函数名前使用类名加以限定。也可以直接在类中给出函数体,形成内联成员函数。,允许声明重载函数和带默认形参值的函数,26,对象,类的对象是该类的某一特定实体,即类类型的变量。,声明形式: 类名 对象名;,例: Clock myClock;,27,类中成员的访问方式,类中成员互访,直接使用成员名,类外访问,使用“,对象名.成员名,”方式访问,public,属性的成员,28,面向对象开发,一种以基于真实世界中以及程序中的抽象为基础思考的软件方式。,面向对象开发的本质是识别和组织应用领域中的概念;而不是以一种编程语言最终表示这些概念。,好处:帮助规划人员、开发者和客户清晰地表达抽象的概念,并将这些概念互相传达。,29,三种模型,OO开发使用三种模型从不同的视角来描述系统,类模型描述了系统内部对象及其关系的静态结构,类图中的结点是类;弧表示类间的关系,状态模型描述了对象随着时间发生变化的那些方面,结点是状态,弧是由事件引发的状态间的转移,交互模型描述系统中的对象如何协作以完成更为宽泛的任务,用例:关注系统的功能,顺序图:显示交互的对象以及发生交互的时间顺序,活动图:描述重要的处理步骤,30,UML简介,UML语言是一种可视化的的面向对象建模语言。,UML有三个基本的部分,事物(Things)UML中重要的组成部分,在模型中属于最静态的部分,代表概念上的或物理上的元素,关系(Relationships)关系把事物紧密联系在一起,图(Diagrams)图是很多有相互相关的事物的组,31,UML中有4种类型的事物,结构事物(Structural things),动作事物(Behavioral things),分组事物(Grouping things),注释事物(Annotational things),32,UML中的关系,依赖(Dependencies),关联(Association),泛化(generalization),实现(realuzation),33,UML中的9种图,类图(class diagram),对象图(class diagram),用例图(Use case diagram),顺序图(Sequence diagram),协作图(Collaboration diagram),状态图(Statechart diagram),活动图(Activity diagram),组件图(Compomnent diagram),实施图(Deployment diagram),34,类图,举例:Clock类的完整表示,Clock类的简洁表示,Clock,- Hour : int,- Minute : int,- Second : int,+ ShowTime() : void,+ SetTime(NewH : int = 0, NewM : int = 0, NewS : int = 0) : void,Clock,35,对象图,myClock : Clock,- Hour : int,- Minute : int,- Second : int,myClock : Clock,36,类与对象关系的图形标识,依赖关系,图中的“类A”是源,“类B”是目标,表示“类A”使用了“类B”,或称“类A”依赖“类B”,类 A,类 B,37,类与对象关系的图形标识,作用关系关联,图中的“重数A”决定了类B的每个对象与类A的多少个对象发生作用,同样“重数B”决定了类A的每个对象与类B的多少个对象发生作用。,类 A,重数A,类 B,重数B,38,类与对象关系的图形标识,包含关系聚集和组合,类 A,类 B,重数A,重数B,类 A,类 B,重数A,重数B,聚集表示类之间的关系是整体与部分的关系,“包含”、“组成”、“分为部分”等都是聚集关系。,39,类与对象关系的图形标识,继承关系泛化,父类 A,父类 B,子类 1,子类 2,40,注释,在UML图形上,注释表示为带有褶角的矩形,然后用虚线连接到UML的其他元素上,它是一种用于在图中附加文字注释的机制。,注释文字,41,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!