目录
前言
当软件的规模超过一定的尺度以后,采用结构化程序设计,其开发和维护就越来越难控制。其根本的原因就在于,面向过程的结构化思想与现实世界往往都不一致,结构化程序设计的思想往往很难贯彻到底。
在结构化程序设计中,采用的是“自顶向下,逐步细化”的思想。具体操作方法是模块化,是按功能来分的,所以也称为功能块(函数)。
在模块化思想中已经出现的封装的概念,即是将数据封装到模块中,即局部变量。但这是不彻底的,因为模块是功能的抽象,而数据是具有其特征的,一旦发生一点变化,抽象的功能模块就不再适用了。可维护性差成了结构化程序设计的瓶颈。
所以出现了与现实世界更为切合的设计方法,面向对象的程序设计思想。
一、面向过程与面向对象
1.面向过程——步骤化
面向过程就是分析出实现需求所需要的步骤,通过函数(方法)一步一步实现这些步骤,接着依次调用即可。
2.面向对象——行为化
面向对象的概念:对象的概念是面向对象技术的核心所在。面向对象技术中的对象就是现实世界中的,某个具体的物理实体在计算机世界(逻辑)中的映射和体现。也就是说计算机中的对象,是模拟现实世界中的实体。
从现实世界到计算机世界映射
银行的ATM机
总结
类是由一组相关的属性(变量)和行为(方法)的集合 。是由一个抽象概念设计的产物。
对象是由一个类型实例化后的具体表现形式。就具体存在的实体。
成员变量是对象的属性,属性的值确定对象的状态。
成员函数是对象的方法,确定对象的行为。
二、对象的属性
状态和行为是对象的主要属性
- 对象的状态又称为对象的静态属性,主要指对象内部所包含的各种信息,也就是变量。每个对象个体都有自己专有的内部变量,这些变量的值表明对象所处的状态。
- 对象的方法(行为)一方面把对象的内部变量包裹,封装,保护起来,使得只有对象自己的方法才能操作对象内部变量,另一方面,对象的方法还是对象与外部环境和其他对象交互,通信的接口,其他对象或外部环境可以通过这个接口来调用对象的方法,操控对象的行为和改变对象的状态。
对象是现实世界的实体或概念在计算机世界中的抽象表示。具体地,对象的属性和操作的一个集合,用来模拟或影响现实世界的实体。
三、对象的关系
- 包含:当对象A是对象B的属性时,称对象B包含对象A;
- 继承:当对象A是对象B的特例时,称对象A继承对象B
- 关联:当对象A的引用是对象B的属性时,称对象A对象B之前是关联关系。所谓对象的引用是指对象的名称,地址,句柄等可以获得和操控该对象的途径。
四、面向对象的特征
面向对象的三大特征
封装,继承和派生,多态性
封装
封装(Encapsulation):是面向对象程序设计最基本的特性,把数据(属性)和函数(方法,操作)合成一个整体,这在计算机世界中是用类与对象实现的。 封装:(封装)是面向对象程序设计最基本的特性,把数据(属性)和函数(方法,操作)合成一个整体,这在计算机世界中是用类与对象实现的。
继承与派生:(继承与派生一体两面)
继承(inheritance)机制:是类型层次结构设计中实现代码的复用重要手段。 继承(继承)机制:是类型层次结构设计中实现代码的复用重要手段.
派生:保持原有类特性的基础上进行扩展,增加新属性和新方法,从而产生新的类型。 派生:保持原有类特性的基础上进行扩展,增加新属性和新方法,从而产生新的类型.
在面向对象程序设计中,继承和派生是构造出新类型的过程。呈现类型设计的层次结构,体现了程序设计人员对现实世界由简单到复杂的认识过程。 在面向对象程序设计中,继承和派生是构造出新类型的过程.呈现类型设计的层次结构,体现了程序设计人员对现实世界由简单到复杂的认识过程.