新员工培训-面向对象基本概念_第1页
新员工培训-面向对象基本概念_第2页
新员工培训-面向对象基本概念_第3页
新员工培训-面向对象基本概念_第4页
新员工培训-面向对象基本概念_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象根本概念总体设计部石宏峰2004.02.面向对象概述.开篇语 复杂性是软件系统本质的一部分。没有什么笼统处置可以消除软件系统的复杂性,然而,可以生成一种机制来管理这些复杂性。并且,有些困难不是“偶尔的〞,是软件建造的方法所引起的。改动建造软件的方式将改善这些所谓“偶尔的〞困难。.呵斥软件复杂性的主因软件开发任务的现状:软件越来越庞大,各软件组件之间的互联很复杂软件开发由个人的发明性活动转变为有组织的团队活动,交流协调任务加剧传统的构造化分析设计和模块化编程导致系统低内聚、高耦合,使系统不灵敏也不易维护呵斥软件的复杂性的真正缘由:软件的大小不能决议软件复杂程度高度耦合、低内聚才是呵斥软件复杂性的主要缘由.面向对象(Object-Orientation)面向对象的概念最初是在上个世纪60年代后期由运用SIMULA言语的研讨人员提出真正的面向对象程序设计是在Smalltalk言语中实现的,“面向对象〞这个词也是Smalltalk首先提出的面向对象方法学以为:客观世界由各种“对象〞所组成,任何事物都是对象每一个对象都有本人的运动规律和内部形状不同对象的组合及相互作用就构成了我们要研讨、分析和构造的客观系统.OO方法与构造化方法差别(1)构造化方法:将一个系统化分为两部分:数据〔运用数据模型建模〕和功能〔运用过程模型建模〕。导致数据与设计模型和系统实现〔即程序〕中的行为分别。OO方法:将系统定义为一组正在交互的对象。对象可以完成一些事情〔功能〕,也知道一些事情〔数据〕。.OO方法与构造化方法差别(2).面向对象的软件系统构造.面向对象方法很多程序员将面向对象编程〔OOP〕技术和面向对象〔OO〕技术混淆面向对象不仅是一种技术,面向对象技术是一门博大精深的学问,它是一种方法论或者说是一种世界观人们对面向对象方法的研讨与运用,不再局限于编程阶段,而是从系统分析和系统设计阶段就开场采用面向对象方法面向对象方法曾经开展成一种完好的方法论和系统化的思想体系面向对象不仅适用于软件设计开发,也适用于处理硬件、组织构造、商业模型等多种领域的问题.“练器〞与“练气〞会运用面向对象的编程工具并不等于就掌握了面向对象的思想和方法程序设计言语仅仅提供一个方法学的表示,而真正的方法是从生活、任务、学习等中提升而来的,这个也真是程序设计言语所做不到的有人即使选择了面向对象的利器,也无法成为真正的高手。由于他看重的是“器〞的好坏,忽略的是“气〞的修炼掌握面向对象的思想好像获得练气的真理,它的重要性往往胜过了对编程言语的选择练器虽易,但难成高手。练气虽好,但见效缓慢。内外兼修,终成正果.面向对象根本概念.总述对象类实例类的根本关系〔承继、关联、聚合〕接口封装多态性.对象〔Object〕对象指的是一个独立的、异步的、并发的实体,它能“了解一些事情〞〔即存储数据〕、“做一些任务〞〔即提供效力〕,并“与其它对象协同〞〔经过交换音讯〕对象是对问题域中某个实体(任何有明确边境和意义的东西包括详细的物理实体和人为的概念〕的笼统软件系统中的对象对象是一个接纳和发送音讯的黑盒子对象包含编码〔CODE〕和数据〔DATA〕CODE是一段有序的计算机指令,决议对象的行为DATA是指令要操作的信息,即对象的内容CODE与DATA在对象内部是分别的对象是数据构造及其上的操作的封装体.类〔Class〕类似对象〔具有一样属性和行为〕的一种分类是一张制造对象的蓝图,对象经过类来定义。类名属性方法属性〔Attribute〕:类知道的事情;一些数据或信息〔内容〕方法(Method):类完成的事情;一个操作或成员函数〔行为〕,有参数和前往值.实例(Instance)实例:按照类“样板〞建立的详细对象,就是实例。实例是一个详细的对象〔“对象〞这个术语有泛指的含义)实例化:创建对象的过程.类、实例与对象的联络与区别类是一个模板、蓝图实例和对象都是根据类模板发明出来的实例指的是一个详细的实例对象是泛指实例,并不指出是哪个详细的实例.类关系——承继(1)〔inheritance〕承继:表示两个类之间是“isa〞、“islike〞或“iskindof〞的关系子类〔subclass〕:假设类B承继自类A,B就是A的子类父类〔superclass〕:假设类B承继自类A,A就是B的父类类A类B属性承继、方法承继.类关系——承继(2)单承继(singleinheritance):一个类仅从另外一个类中承继多重承继(multipleinheritance):一个类从另外的一个以上的类中承继覆盖(override):在子类中重新定义属性和方法笼统类(abstractclass):不能实例化的类.类关系——关联(1)

(association)类A类B基数A基数B标签关联:一个类知道(knows)另一个类:表示两端衔接的类存在关联关系:表示关联的方向基数:表示两端关联的对象数(0..1,1,0..*,1..*,n,0..n,1..n)标签:对关联的描画,普通阐明关联发生的前提。〔可选〕.类关系——关联(2)双向关联:两个类相互知道类A基数A基数B标签类B递归关联:一个类中的对象之间存在关联关系类A基数A基数B标签多关联:两个类之间存在关多种联关系类A基数A基数B标签1类B基数a基数b标签2.类关系——聚合

(aggregation)聚合:是一种特殊的关联。表示两个类之间是ispartof的关联。类A类B基数组合〔composition〕:是一种强聚合。表示“整体〞与各“组成部分〞共存。类A类B基数.接口(1)

(interface)接口好比一种模板,这种模板定义了对象必需实现的方法,其目的就是让这些方法可以作为接口实例被援用。接口不能被实例化一个对象仅能经过其接口才会被其它对象所了解类可以实现多个接口并且经过这些实现的接口被索引接口是一个对象在对其它的对象进展调用时所知道的方法集合对象的接口描画了对象可以完成的任务接口是实现插件化〔pluggability〕的关键.接口(2)Method1M2M3M4…Method1M2M3M4…DataLogicInterfaceClass接口是对类的轮廓的笼统接口不变类被运用方式不变将实现抛开〔在没有详细实现的情况下,就确定如何运用类〕,留下扩展空间.封装和信息隐藏

(encapsulation&informationhiding)封装将操作和数据变量同放于一个类〔或对象〕中,并使对数据的访问只可经过该类〔或对象〕本身的操作来进展,外部不能直接作用于该类〔或对象〕的数据,类〔或对象〕的通讯只能经过明确的音讯来进展封装是把类或对象的边框涂黑的做法。目的是为了做信息隐藏信息隐藏:将对象私有信息隐藏,使之不能被外部类直接援用。隐藏对象知道什么和能做什么的实现方法,即隐藏对象是如何任务的目的就是限制外部对属性和内部方法的访问。面向对象编程的一条根本原那么对象的运用者永远不需求去看对象〔黑盒子〕的内部.多态性

(polymorphism)一个对象可以有多种方式,其他的对象可以与这个对象相互作用而不用知道它具有确实切方式Figrue:笼统类“图形〞draw():画图方法Circle、Square、Retangle承继Figrue,并重置〔或实现〕draw()方法。Figure.draw()的输出?.面向对象方法总结区别于传统的构造化方法。传统的软件观念:自动的运用程序操作被动的数据构造;OO的软件观念:相互影响的对象集合将现实世界中的实体看成是一个个对象,分析对象之间存在着的联络;把这些映射到系统模型中,建立一个基于相互作用的对象的系统模型运用面向对象技术开发出来的软件构造是建立在现实世界的实体或对象的根底上的,它把软件的功能分散到各个对象中间建立在客观系统的事物和笼统概念根底上的对象实现了从问题域到解题域直接映射。使得分析设计过程更加直观自然分布式处置:每个对象将功能和形状封装于本身的内部构造中,同时对象的任务也是自治的,不受时间、地点影响,因此使系统在运算处置上具有分布性高度的重用性:对象、方法等可反复利用功能的共享性:经过对象的承继机制使系统的处置才干得到充分发扬.面向对象方法的意义面向对象的方法在技术和管理两个层面均提供了决议软件质量的诸多要素,包括可复用性、可靠性、强壮性、可扩展性、分布性和可存储性等面向对象直接导致软件系统的强内聚和松耦合,使软件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论