OPP解读

关于OOP的来历背景:

在软硬件系统逐渐复杂 的情况下,软件如何得到良好的设计和维护?传统的c语言结构化设计思想已越来越满足不了现实的需要---------结构化设计无法很好地描述整个系统,也让人难以理解,因而给软件后期的维护增加了难度。

面向对象程序设计思想正是在这种背景下,通过强调可重复性解决了这一问题。  

OOP是对结构化程序设计的继承和发展,不仅汲取了结构化程序设计的精华,而且以一种更接近人类思维的方式来分析和解决问题:程序是对现实世界的描述,现实世界的基本单元是物体,程序中的基本单元是对象

经过抽象,发现每个对象都由两部分组成:描述对象状态或属性数据和描述对象行为或功能的函数(方法)。

结构化程序设计思想将数据和函数分开,而面向对象程序设计将数据和函数紧密集合共同构成对象来更加准确地描述现实世界。这可以说是两者最本质的区别

OOP的三座基石:多态,继承和封装。

封装:通过封装将数据和相应的算法捆绑在一起,形成对象,也是现实世界中物体在程序中的反映。避免了外界的干扰和不确定性。

继承:使某个类型的对象获得另一个类型的对象的属性的方法。如:语文老师属于老师,老师属于人类,具有父类的公共属性。支持代码的重用。

多态:在不同的情况下具有不同的形式的能力。

 @《我的第一本c++书》

c++可以面向对象编程,模板特性提供了另一种编程——通用编程。

c++融合了3种不同的编程传统——c语言代表的过程性语言传统,在c基础上添加的类(OOP核心概念)代表的面向对象语言的传统,以及c++模板支持的通用编程系统。表明c++强调的是实用价值。

       数据+算法=程序

面向过程,强调算法,根据执行的操作构思一个程序。自顶向下。自己目前的水平依旧停留于此。"自顶向下,逐步求精"是结构化程序设计的精髓。

OOP强调数据,其理念是设计与问题的本质特性相对应的数据格式。在c++中,类是一种规范,描述了这种新型的数据格式,对象是根据这种规范构造的特定数据结构。

OOP程序设计方法首先设计类。

从低级组织“类”到高级组织,如“程序”的处理过程叫做“自下向上”的编程。

OOP不仅仅是将数据和方法合并为类定义,“信息隐藏”,“多态”,“继承”等引入了很多新的理念。OOP不是将重点放在任务上,而是放在表示概念上。

有时,不一定使用自顶向下的编程方法,而是使用自下向上的编程方法。还没到这个层次目前。。

 通用编程强调是算法。OOP是一个管理大型工程的工具,而通用编程提供了执行常见任务的工具。注意通用(generic)字眼。

 OOP的本质是设计并扩展自己的数据类型

OOP与传统的过程性编程的区别在于:oop强调在运行阶段决策而非编译阶段。为了满足这个,需要new请求内存+指针。

原文地址:https://www.cnblogs.com/skylover/p/7068593.html