当软件规模超过一定的尺度后,采用结构化程序设计,其开发和维护就越来越难空值。其根本原因就在于面向过程的结构化程序设计的方法与现实世界往往不一致,结构化程序的思想往往很难贯彻到底。
在结构化设计中,往往采用的是“自顶向下,逐步细化”的思想。具体操作方法是模块化,是按照功能来分的,所以也称为功能块(函数)。在c++中称为一个函数,一个函数解决一个问题,即实现一个功能或一个操作。
在模块化的思想中已经出现了封装的概念,这个封装是将数据封装到模块中,即局部变量。电脑这是很不彻底的,因为模块是功能的抽象,而数据则是具有其个性的,一旦发生哪怕是一点变化,抽象的功能模块就很不适用了。可维护性差成了结构化程序设计应用的瓶颈。
2. 面向过程的概念对象的概念是面向对象技术的核心所在。面向对象技术中的对象就是现实世界中,某个具体的物理实体在计算机世界的映射和体现。也就是说计算机中的对象,是模拟现实世界的实体。
从现实世界到计算机世界的映射。
总结:
类是一组相关的属性(变量)和行为(方法)的集合。是由一个抽象概念设计的产物;
对象是由一个类型实例化后的具体表现形式。就具体存在的实体。
成员变量是对象的属性(可以是变量,指针,数组等),属性的值确定对象的状态。
成员函数是对象的方法,确定对象的行为。
状态和行为是对象的主要属性。
1. 对象的状态又称对象的静态属性,主要指对象内部所包含的各种信息,也就是变量。每个对象个体都有自己专有的内部变量,这些变量的值表明了对象所处的状态。
2.对象的方法(行为)一方面把对象的内部变量包裹,封装,保护起来,使得只有对象自己的方法才能操作对象内部变量,另一方面,对象的方法还是对象与外部环境和其他对象交互,通信的接口,其他对象或者环境可以通过这个接口来调用对象的方法,操纵对象的行为和改变对象的状态。
3.对象是现实世界的实体或概念在计算机世界的抽象表示。具体地,对象是属性和操作的一个集合,用来模拟或影响现实世界中的实体。
相对于传统的面向过程的程序设计方法,而面向对象的程序设计具有如下优点:
1. 对象的数据封装特性彻底消除了传统结构方法中数据域操作分离所带来的种种问题,提高了程序的可复性和可维护性,降低了程序员保持数据与操作相容的负担;
2.对象的数据封装特性还可以把对象的私有数据和公有数据分离开,保护了私有数据,减少了可能的模块间干扰,达到降低程序复杂性,提高可控性的目的;
3.对象作为独立的整体具有良好的自洽性,即他可以通过自身定义的操作来管理自己。一个对象的操作可以完成两类功能,一是修改自身的状态,二是向外界发布消息。
4.在具有自洽性的同时,对象通过一定的接口和相应的消息机制与外界联系。这个特性与对象的封装结合在一起,较好地实现了信息的隐藏。
5.通过继承可以很方便地实现应用的扩展和已有代码的重复使用。
总结:面向对象程序设计是将数据及数据的操作封装在一起,成为一个不可分割的整体,同时将具有相同特性的实体抽象成为一种新的数据类型-----类。通过对象间的消息传递使得整个系统运行。
对象的关系:1. 包含:当对象A是对象B的属性时,称对象B包含对象A
2.继承:当对象A是对象B的特例时,称对象A继承对象B
3. 关联:当对象A的引用是对象B的属性时,称对象A和对象B之间是关联关系,所谓对象的引用是指对象的名称,地址,句柄等可以获得和操作该对象的途径。



