人们所能够解决的问题的复杂性直接取决于抽象的类型和质量
抽象类型:把问题抽象成了什么(元素)
抽象质量:元素的层次与关系(关联)
传统编程语言的缺点:
依赖解空间域的环境(计算机),基于计算机结构,不是基于问题的结构。
必须在解空间(机器模型)与问题空间(问题模型)之间建立起映射关系。
有部分语言是专门对问题空间进行建模而设计。但专业领域依赖性太强,无法通用。所抽象的类型过于局限性。
面向对象的优点:
不受限于特定类型。通用性更强。
对象:具有状态,行为,标识
状态:对象在任何时刻都存在自己特定形态(对象本身就是一个数据和行为的携带者)
行为:对象都有改变自己的形态和为其它对象提供服务的操作行为(对象都自己的能力都非常了解)
标识:对象在其所在的世界或领域内都是唯一被标识的
万物皆对象:OO将所有存的事物(实体或概念)都当作一个特定的对象。
程序是对象的集合:OOP将对象按某种关系组合在一起,形成一个具有一定逻辑和存储数据的代码集合体。
每个对象都有自己的由其他对象所构成的存储:一个对象可能是其他的对象的组合。就像生物是由细胞组成,而细胞是包含细胞核一样。这样
包含对象能够使用被包含对象的所有数据和行为。
每个对象都有其类型:每一个对象都对映着一个实体。而每个实体都存在一个概念上的描述。这个描述就是对象的类型。根据描述环境和角度
的不同,多个不同可能相似的对象可以拥有相同的描述,即多个对象属于同一个类型。根据这个类型,可以创建该类型的特定对象。对象
拥有其所对象类型所描述的行为和数据。
某一个特定类型的所有对象都可以接收同样的消息:对于由同一个类型所创建的所有特定对象,都拥有类型所描述的相同行为。
对象接收消息的理解:除了改变自己状态以外,对象存在的价值就是为其它对象提供服务。提供服务体现在对象所具体的行为上。一个对象A为
另外一个对象B提供服务时,我们可以认为B在向A请求提供服务的消息,而A在接收B所请求的服务的消息。
每个对象都有一个接口:接口是对象的对外提供服务的行为集合。接口就是对象与对象之间沟通的通道。接口确定了对某一特定对象所能发出
的请求(行为)
每个对象都提供服务:在OOA/P时,目的就是去创建能够提供理想的服务来解决问题的一系列对象。将问题分解成对象的集合是一种合理的方式
。
优点:将对象看作是服务提供者有助于提高对象的内聚性和可复用。
隐藏具体实现:增加对象访问的安全性,避免其内部重要数据被外部对象所破坏
优点:让客户端程序无法触及他们不应该触及的部分(部分类型的内部操作是必须的,但并不是用户解决问题所需接口的一部分)
允许库设计者可以改变类内部的工作方式而不用担心影响到客户端程序
复用具体实现:新的类可以由任意数量,任意类型的其他对象以任意可以实现新的类中想要的功能的方式所组成。
继承:也是复用实现的另一种方式
如果一个新类B与已存在类A很相似(接口相似),或者说"B是一种A","B像一种A",为了不必要的重复创建功能相似的类,可以使用继承。
当B继承(extends)A时,B同时也就是具备了所有A特性和行为(A的状态和行为)。同时B还可以自己扩展特性和行为。
A称为父类或基类或超类,B称为子类或继承类或导出类或扩展类。
子类可以通过改变由A默认继承过来的行为(覆盖overriding)。
多态:对于向基类发送同一消息请求,其子类对象可以做出不同的行为。也就是说,凡是所有基类能够接收的消息,其子类都均能接收。子类
接收消息请求后,会根据其自身的特性和行为表现出不同的形态。
向上转型:子类向基类转换(安全的)
向下转型:基类向子类转换(不安全的)
单根继承结构:所有类的最终基为均是Ojbect
优点:保证所有对象都具有类型,同时也就具备某些功能。因此不会因为对象无法确认类型而陷入僵局
容器:一种新的对象类型,持有其他对象的引用。将一组具有相同或相似类型的对象引用存放在一起,便于管理和使用。在访问对象引用时,
由于不同容器的实现策略不同,对象引用的存放方式和访问方式有所不同,所有访问对象引用的效率有所不同。根据使用环境,选择适当
的容器。
参数化类型:在使用容器时,为了过滤加入容器的对象类型。一般采用参数化类型。指定容器中只能存放的某类型或其子类型的对象。
分享到:
相关推荐
使用通俗的举例让大家知道oo的概念OO 面向对象概念通俗说明
详细介绍建模、面向对象和UML的课件。 第一部分通过例子阐明了建模的...第三部分从OO思想的角度说明面向对象的基本概念,以及为什么会有这些概念。 第四部分阐明了为什么需要UML、UML带来的什么、UML的发展历史和组成。
面向对象OO程序设计概念PPT课件.PPTx
学习OO设计概念和Java中的MDI应用程序开发的项目_Java_下载.zip
OO-ALV的定义及调用 OO-ALV示例程序 面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。 基本概念: 1.对象(Object)是一个现实实体的抽象。一个对象可被认为是一个...
下面小编就为大家带来一篇浅谈java中OO的概念和设计原则(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
java-examples 带有小型Java程序的存储库,以应用OO概念。须藤chmod 666 /var/run/docker.sock
笔者认为分析模型正是OO设计的核心,而设计类只是OO的实现手段。分析模型是MVC模式的经典应用。对比分析类的名称,MVC模式,读者应该能够发现分析类在OO和商业目标中精妙的对应关系:人,事,物,规则--actor,...
面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、...
最初是为了提高视频分辨率而进行的更新,后来也变成了用于教授基本的面向对象概念的工具和ABAP语法的现代化。 以下是此代码示例随附的YouTube播放列表: : ABAP OO第1部分-简介 ABAP OO第2部分-静态与实例 ABAP...
java学习指导,包括java从入门开始的概念及重要案例
面向对象设计原则和设计模式的概念,讲述面向对象的设计模式
核心java 核心Java示例代码
浅显语言帮助理解什么是面向对象,面向对象的来源和哲学思辨
使用OO概念用C语言编写的框架。 与Java非常相似。 这将改变您使用C语言进行编程的方式。请随时通过juanrb@hotmail.com与我联系。
除了学习基本的Java语法以及如何用Java表达OO概念外,还讨论了实用主题,例如小程序,图形,数据存储,多线程编程和异常处理。 1.2先决条件 学生必须具有成功完成MCT612应用程序编程所达到的标准的程序语言(例如C...
另外,第1章至第9章还穿插介绍了四个OO基本概念(抽象、封装、继承、多态),以及九个OO原则(Principle)。千万不要轻视这些OO原则,因为每个设计模式背后都包含了几个OO原则的概念。很多时候,在设计出现两难情况...
面向对象的程序设计概念,看看吧 不错的 面向对象的程序设计概念
第1章还介绍了四个OO基本概念(抽象、封装、继承、多态),而第1章到第9章也陆续介绍了九个OO原则(Principle)。千万不要轻视这些OO原则,因为每个设计模式背后都包含了几个OO原则的概念。很多时候,在设计时有...
完整版 杭州电子科技大学JAVA语言程序设计 JAVA_02 面向对象(OO)程序设计概念 (共51页).PPT 完整版 杭州电子科技大学JAVA语言程序设计 JAVA_03 JAVA语言基础 位运算(共21页).ppt 完整版 杭州电子科技大学JAVA...