面向对象的概念

面向对象是一种运用对象、类、继承、封装、聚合、消息传递、多态性等概念来构造系统的软件开发方法。面向对象的主要思想是将现实世界中的对象映射为问题域中的要素,从而有效地连接计算机和现实问题域。面向对象的基本概念有对象、类、抽象、封装、继承、多态、消息、模式和复用等。

对象

对象是由数据及其操作所构成的封装体,是系统中用来描述客观事物的一个模块,是构成系统的基本单位。采用计算机语言描述,对象是由一组属性和对这组属性进行的操作构成的。

对象的三要素是对象标识、对象状态和对象行为。例如对于教师Joe,其个人状态信息包括性别、年龄和职位等,其行为特征为授课,则Joe就是封装后的一个典型对象。

类是现实世界中实体的形式化描述,类将该实体的数据和函数封装在一起。类的数据也叫属性、状态或特征,它表现类静态的一面。类的函数也叫功能、操作或服务,它表现类动态的一面。

如教师类中,教师共同的状态通过属性表现出来,共同的行为通过操作表现出来,如下图所示。

教师类的属性和操作

对象是类的实际例子,如将所有教师抽象为教师类,则教师Joe是教师类的一个对象。

类和对象的关系如下:

.每个对象都是某个类的实例。

.每个类在某一时刻都有零或更多的实例。

.类是静态的,它们的存在、语义和关系在程序执行前就已经定义好了;对象是动态的,它们在程序执行时可以被创建和删除。

.类是生成对象的模板。

抽象

抽象是通过特定的实例抽取共同特征以后形成概念的过程。它强调主要特征,忽略次要特征。一个对象是现实世界中一个实体的抽象,一个类是一组对象的抽象,抽象是一种单一化的描述,它强调给出与应用相关的特性,抛弃不相关的特性。

封装

封装是将相关的概念组成一个单元,然后通过一个名称来引用它。面向对象封装是将数据和基于数据的操作封装成一个整体对象,对数据的访问或修改只能通过对象对外提供的接口进行。

继承

继承表示类之间的层次关系,这种关系使得某类对象可以继承另外一类对象的属性和操作。继承又可分为单继承和多继承,单继承是子类只从一个父类继承,而多继承中的子类可以从多于一个的父类继承,Java是单继承的语言,而C++允许多继承。

如类B继承了类A,则类B中的对象具有类A的一切特征,类B还可以有一些扩展。类A称为基类、父类或超类,类B称为类A的派生类或子类。

多态

多态性是一种方法,这种方法使得在多个类中可以定义同一个操作或属性名,并在每个类中可以有不同的实现。多态使得某个属性或操作在不同的时期可以表示不同类的对象特征。

动态绑定

绑定是一个把过程调用和响应调用所需要执行的代码加以结合的过程。在一般的程序设计语言中,绑定是在编译时进行的,叫作静态绑定。动态绑定则是在运行时进行的,因此,一个给定的过程调用和代码的结合直到调用发生时才进行。

动态绑定是和类的继承以及多态相联系的。在继承关系中,子类是父类的一个特例,所以父类对象可以出现的地方,子类对象也可以出现。因此在运行过程中,当一个对象发送消息请求服务时,要根据接收对象的具体情况将请求的操作与实现的方法进行连接,即动态绑定。

接口

接口就是对操作规范的说明。接口只是说明操作应该做什么,但没有定义操作如何做。接口可以理解为类的一个特例,它只规定实现此接口的类的操作方法,而把实现细节交由实现该接口的类完成。

消息

消息体现对象间的交互,通过它向目标对象发送操作请求。

组件

组件也叫构件。组件是软件系统可替换的、物理的组成部分,封装了模块功能的实现。组件应当是内聚的,并且具有相对稳定的公开接口。

模式

每个模式描述了一个不断重复发生的问题,以及该问题的解决方案。它是一条由三部分组成的规则,表示了一个特定环境、一个问题和一个解决方案之间的关系。

设计模式通常是对于某一类软件设计问题的可重用的解决方案。设计模式使人们可以更加简单和方便地去复用成功的软件设计和体系结构,能够帮助设计者更快更好地完成系统设计。

设计模式的四要素:

.模式名称(Pattern Name)。

.问题(Problem)。

.解决方案(Solution)。

.效果(Consequences)。

设计模式确定了所包含的类和实例,它们的角色、协作方式以及职责分配。按照设计模式的目的可以分为三类:

.创建型模式:与对象的创建有关。

.结构型模式:处理类或对象的组合。

.行为型模式:对类或对象怎样交互和怎样分配职责进行描述。

复用

软件复用是指将已有的软件及其有效成分用于构造新的软件或系统。构件技术是软件复用实现的关键。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cheng序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值