面向对象编程(Object Oriented Programming,OOP)有别于传统的面向过程编程,在了解面向对象编程之前,我们要先了解一下面向对象的概念。
面向对象是一种设计思想,应用于诸如软件设计,数据库设计,计算机辅助设计,网络结构设计,人工智能算法设计等领域。其中的对象,(划重点)指的是客观世界中存在的对象,对象之间各不相同,存在唯一性,客观世界中的任何东西都可以看作一个对象,每个对象都有属性和行为两个要素,属性就是其特点及状态,行为就是改变自身状态的操作。
总的来说,面向对象是从组织结构上模拟客观世界。
面向对象有3大特点,分别是封装、继承和多态。
封装:
封装可以把不同的小对象封装成一个大对象,类似嵌套;也可以把一部分属性和行为对外界屏蔽。
继承:
继承是和类密不可分的一个概念,即子类自动继承父类的属性和行为,但可以在此基础上添加新的属性和行为。它提高了代码的可重用性,也是面向对象程序设计语言最重要的特点。
多态:
多态即相同的行为在不同类型的对象上有不同的结果。不同对象在收到同一条消息后产生不同结果的现象被称为多态性。
面向过程编程是在完成的先后即一个过程中实现特定功能,分析过程与数据之间的边界。但相较面向对象编程有重用性差的特点。
面向对象程序设计有两点:1,需要的类和对象:2,消息的传递。当所有对象完成任务后总的任务也就完成了。
面向对象编程的一般逻辑为:现实→面向对象建模→面向对象语言→执行求解。
面向对象编程最大的优势点就在于代码的修改和维护成本大大的降低,这对于开发团队来说是显而易见的好处。但不是说对于编程的初学者就没有用了,个人在做一些小型项目时出现需要自己已经完善过的类的相似情况,则可以将以前的类作为基类来派生,可以节约时间。
总而言之,面向对象编程的目的是为了使程序的设计思路更偏向于人的逻辑,但是面向对象并非万能,否则面向过程早就被淘汰了,在一些部分和特殊的项目还是需要的,只有把这两者都掌握清楚才能更好的完成自己的项目。