浅谈OOP(面向对象编程)

POP(Procedure Oriented Programming)

在了解OOP(面向对象编程)之前,我们首先要了解一下POP(面向过程编程);
何为面向过程,书面给出的解答是 “事物比较简单,可以用线性的思维去解决问题”,我对此的理解为着重于步骤,并且将所有的步骤堆放在一起,在相对于简单的事物前,用线性思维解决问题尚看不出弊端,而当事物超过线性思维能扩散的最大范围时,步骤间的关系就会变得越来越复杂,且功能越扩展,逻辑也就越复杂,相当不利于后期维护;

OOP(Object Oriented Programming)

而面向对象;在了解面向对象之前,我们需要知道两个概念;类和对象,我对此的理解为,对象就是具体的事物,而,类,则是对对象的抽象(这里的抽象我们可以对其直译,就是“抽出象的部分”),从哲学上来看,“物以类聚”,人类的习惯性思维就是会将相近的事物(对象)归类,因此,我们可以整理出类和对象的关系了,就是先有对象,然后抽出各个对象间象的部分,归纳出类,再通过类认识其他对象;
从上可以看出类就是对象的一个模板,而对象,则是类的实例,我们会在一个类中描述统一类型对象的抽象,并在该类中定义这一对象所具有的静态和动态的属性;

OOP和POP的区别及共同点

区别

一般比较简单的事物可以运用线性思维能够解决的我们一般会采用面向过程;而较为复杂、使用线性思维无法解决的事物将会采用面向对象;举个栗子:
面向过程(代表性语言:C):
以方法为单位来管理所有代码,比方说某个软件中包含1000个变量和1000个方法,那么面向过程则是统一将所有方法堆放在一起,这种方式很难对软件进行扩展
面向对象(代表性语言:C++;JAVA):
以类为单位来管理所有代码,其实就是对面向过程中的线性思维进行思维扩散及纵深思考,比方说某个软件中包含1000个变量和1000个方法,那么面向对象过程中我们将所有相近的方法和变量以类封装,这样,二次开发是只需要添加对应的类,在类中操作方法即可,这样,面向对象就增强了对软件的扩展性和可维护性;

共同点

其实二者是相辅相成,而并非对立,它们都是解决实际问题的一种思维方式;
解决复杂问题,通过面向对象的方式便于我们从宏观上把握事物间的复杂关系、方便我们分析整个系统;具体到微观操作,仍然使用面向过程的方式来处理;

最后说一句:对象是Java的核心,在Java中万事万物皆对象;

你可能感兴趣的:(JAVA知识体系)