欢迎来到天天文库
浏览记录
ID:59600227
大小:351.00 KB
页数:29页
时间:2020-11-14
《新员工培训_面向对象基本概念资料讲解.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、新员工培训_面向对象基本概念开篇语复杂性是软件系统本质的一部分。没有什么抽象处理能够消除软件系统的复杂性,然而,能够生成一种机制来管理这些复杂性。并且,有些困难不是“偶然的”,是软件建造的方法所引起的。改变建造软件的方式将改善这些所谓“偶然的”困难。造成软件复杂性的主因软件开发工作的现状:软件越来越庞大,各软件组件之间的互联很复杂软件开发由个人的创造性活动转变为有组织的团队活动,交流协调工作加剧传统的结构化分析设计和模块化编程导致系统低内聚、高耦合,使系统不灵活也不易维护造成软件的复杂性的真正原因:软件的大小不能决定软件复杂程度高度耦合、低内聚才是造成软件复杂性的主要原因面向
2、对象(Object-Orientation)面向对象的概念最初是在上个世纪60年代后期由使用SIMULA语言的研究人员提出真正的面向对象程序设计是在Smalltalk语言中实现的,“面向对象”这个词也是Smalltalk首先提出的面向对象方法学认为:客观世界由各种“对象”所组成,任何事物都是对象每一个对象都有自己的运动规律和内部状态不同对象的组合及相互作用就构成了我们要研究、分析和构造的客观系统OO方法与结构化方法差异(1)结构化方法:将一个系统化分为两部分:数据(使用数据模型建模)和功能(使用过程模型建模)。导致数据与设计模型和系统实现(即程序)中的行为分离。OO方法:将系
3、统定义为一组正在交互的对象。对象可以完成一些事情(功能),也知道一些事情(数据)。OO方法与结构化方法差异(2)面向对象的软件系统构造面向对象方法很多程序员将面向对象编程(OOP)技术和面向对象(OO)技术混淆面向对象不仅是一种技术,面向对象技术是一门博大精深的学问,它是一种方法论或者说是一种世界观人们对面向对象方法的研究与运用,不再局限于编程阶段,而是从系统分析和系统设计阶段就开始采用面向对象方法面向对象方法已经发展成一种完整的方法论和系统化的思想体系面向对象不仅适用于软件设计开发,也适用于解决硬件、组织结构、商业模型等多种领域的问题“练器”与“练气”会使用面向对象的编程工
4、具并不等于就掌握了面向对象的思想和方法程序设计语言仅仅提供一个方法学的表示,而真正的方法是从生活、工作、学习等中提升而来的,这个也真是程序设计语言所做不到的有人即使选择了面向对象的利器,也无法成为真正的高手。因为他看重的是“器”的好坏,忽略的是“气”的修炼掌握面向对象的思想如同获得练气的真谛,它的重要性往往胜过了对编程语言的选择练器虽易,但难成高手。练气虽好,但见效缓慢。内外兼修,终成正果面向对象基本概念总述对象类实例类的基本关系(继承、关联、聚合)接口封装多态性对象(Object)对象指的是一个独立的、异步的、并发的实体,它能“理解一些事情”(即存储数据)、“做一些工作”(
5、即提供服务),并“与其它对象协同”(通过交换消息)对象是对问题域中某个实体(任何有明确边界和意义的东西包括具体的物理实体和人为的概念)的抽象软件系统中的对象对象是一个接收和发送消息的黑盒子对象包含编码(CODE)和数据(DATA)CODE是一段有序的计算机指令,决定对象的行为DATA是指令要操作的信息,即对象的内容CODE与DATA在对象内部是分离的对象是数据结构及其上的操作的封装体类(Class)相似对象(具有相同属性和行为)的一种分类是一张制造对象的蓝图,对象通过类来定义。类名属性方法属性(Attribute):类知道的事情;一些数据或信息(内容)方法(Method):类
6、完成的事情;一个操作或成员函数(行为),有参数和返回值实例(Instance)实例:按照类“样板”建立的具体对象,就是实例。实例是一个具体的对象(“对象”这个术语有泛指的含义)实例化:创建对象的过程类、实例与对象的联系与区别类是一个模板、蓝图实例和对象都是根据类模板创造出来的实例指的是一个具体的实例对象是泛指实例,并不指出是哪个具体的实例类关系——继承(1)(inheritance)继承:表示两个类之间是“isa”、“islike”或“iskindof”的关系子类(subclass):如果类B继承自类A,B就是A的子类父类(superclass):如果类B继承自类A,A就是B
7、的父类类A类B属性继承、方法继承类关系——继承(2)单继承(singleinheritance):一个类仅从另外一个类中继承多重继承(multipleinheritance):一个类从另外的一个以上的类中继承覆盖(override):在子类中重新定义属性和方法抽象类(abstractclass):不能实例化的类类关系——关联(1)(association)类A类B基数A基数B标签关联:一个类知道(knows)另一个类:表示两端连接的类存在关联关系:表示关联的方向基数:表示两端关联的对象数(0..1,1,
此文档下载收益归作者所有