面向对象程序设计概述

本文介绍面向对象程序设计,它是新的程序设计范型,基本元素是对象,程序由类定义和使用组成,操作通过消息实现。阐述了对象、类、消息与方法等基本概念,还介绍了面向对象的抽象、封装、继承、多态四个基本特征。

面向对象程序设计概述

1.1.1 一种新的程序设计概述

面向对象程序设计是一种新的程序设计的范型
(程序设计的范型指设计程序的规范、模型和风格)

  1. [ 范型的主要特征:程序由过程定义和过程调用组成 ]

  2. [ 程序 = 过程 + 调用 (基于面向过程的程序)
    程序 = 对象 + 消息 (面向对象程序设计) ]

  3. [ 基本元素:对象 ]

  4. [ 主要结构特点]
    第一:程序一般由类的定义和类的使用组成
    第二:程序中的一切操作都是通过想对象发送消息来实现的,对象接受到消息后,启动有关方法完成相应的操作。

1.1.2.面向对象程序设计的基本概念

1. 对象

  • [数据 + 操作(方法)]
    [属性 + 行为]

    行为:静态的属性 (可用数据描述)动态的行为(或称操作 \ 功能)

  • 特性
    ① 每一个对象必须有一个名字以区别于其他对象;
    ② 用属性来描述对象的某些特征;
    ③有一组操作,每组操作决定对象的一种行为;
    ④对象的行为分为两类:一类作用于自身的行为,一类作用于其他对象的行为。

  • 当一个对象映射为软件实现时由三个部分组成:
    ①私有的数据结构:用于描述对象的内部空间
    ②处理
    ③接口:对象可被共享的部分

2.类
是一组具有相同属性和行为的对象的抽象。 类是对多个对象进行综合抽象的结果,对象又是类的个体实现,一个对象时类的一个实例。
在面向对象程序设计中:总是先声明类,再由类生成其对象。

  • 类的定义至少包含以下两方面的描述:
    ①该类所有实例的属性定义或结构的定义
    ②该类所有实例的操作(或行为)的定义
例:教师xx时一个对象
    对象名:x x
    属  性: 年龄:45     学历: 博士     
             职称:教授   专业:计算机软件
    操 作:走路、超级烦、授课

3.消息与方法

消息:

一个对象向另一个对象发出的请求

消息传递:

一个对象与另一个对象的交互

消息性质:

(1)同一个对象可以接收不同形式的多个消息,做出不同的响应

(2)相同形式的消息可以传递给不同的对象,所做出的响应可以是不同的

(3)对消息的响应并不是必需的,对象可以响应消息,也可以不响应

方法:

对象所能实现的行为(操作)

方法包括界面和方法体

​ 界面:给出了方法名和调用协议(相当于成员函数的函数名和参数表)

​ 方法体:实现某种操作的一系列计算步骤

消息与方法的关系:

对象根据接收到的消息,调用相应的方法;反之,有了方法,对象才能响应相应的消息。

1.1.3. 面向对象的基本特征

1.抽象

将有关事物的共性归纳、计中处理的过程。是通过特定的实例(对象)抽象共同性质后形成概念的过程。

数据描述:

描述某类对象的属性或状态。

代码描述(行为描述):

描述了某类对象的共同行为特征或具有的共同功能。

2.封装

消息隐藏技术,对象内容对用户时隐藏的,用户只能见到对象的封装界面上的信息,通过对象的外部接口访问对象。指把数据和实现操作的代码集中起来放在对象内部,并尽可能隐藏对象的内部细节。

继承机制允许派生类继承基类的数据和操作,同时,派生类还可以增加新的操作和数据。

目的:

在于将对象的使用者和对象的设计者分开

三个条件:

①一个清楚的边界

②一个接口:用以描述这个对象和其他对象之间的相互作用

③受保护的内部实现

3.继承

所表达的是对象类之间相关的关系

特性:

(1)类间具有共享特征(包括数据和操作代码的共享)

(2)类间具有差别或新增部分(包括非共享的数据和操作代码)

(3)类间具有层次结构

目的:

提高了软件代码的可重复性

作用:

(1)避免公用代码的重复开发,减少代码和数据的冗余

(2)通过增强一致性来减少模块之间的接口和界面

单继承:

指每个派生类只直接继承了一个积累的特征。

多继承:

指多个基类派生出一个派生类的继承关系。

4.多态

多态性是指不同的对象接收到享用的消息时执行不同的操作。

编译时的多态性:

通过函数的重载(包括运算符的重载)来实现

运行时的多态性:

通过虚函数来实现的

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值