上述问题也是是很多人在面试时会被问到的一个问题其实说简单也简单说难也难我来简单说说我对面向对象的理解。说起面向对象我们就能联想到面向过程它们是两种处理问题的不同角度面向过程(Procedure Oriented)是一种以过程为中心的编程思想是一种自顶而下的编程模式面向过程我们更加注重事情的每一个步骤及顺序程序员需要把问题分解成一个一个步骤每个步骤用函数实现依次调用即可。而面向对象更注重事情有哪些参与者以及各自需要什么。程序员将问题分解成一个一个步骤对每个步骤进行相应的抽象形成对象通过不同对象之间的调用组合解决问题。这样说可能有些不太好理解我来简单举一个例子比如我们现在要洗衣服。从面向过程的角度来考虑我们可以拆分成一系列步骤打开洗衣机---放衣服---放洗衣粉---清洗---烘干。从上述步骤很明确的可以看出第一步做什么、第二步做什么。面向过程比较直接高效每一步都是朝着最终目的而进行因此这种方式的代码执行起来效率很高。但是面向过程同时存在着代码重用性低扩展能力差后期维护难度比较大等问题。如果从面向对象的角度来思考我们可以拆分出来两个对象人和洗衣机人打开洗衣机放衣服放洗衣粉洗衣机清洗烘干我们把洗衣服这件事进行抽象划分出不同的角色对不同的角色所应该拥有的职责进行分工然后通过组合的方式解决问题。这种面向对象的解决问题的方式更易于代码的复用扩展和维护。这样说可能有些模糊难懂假设我们现在把刚才的例子换一下我们的目的不是洗衣服而是洗鞋子。那么用面向过程来做就需要从头到尾都重新做一遍也许有人会说我们把之前的重复动作复制粘贴一下不就好了吗但各位想想这现实吗这只是一个几行代码的方法如果是上万行千万行的大型项目还能用复制粘贴的方式来解决问题吗显然是不可能的。而如果是面向对象我们只需要把“人”的“放衣服”的动作换成“放鞋子”即可等于是给人添加了一个属性或功能不需要做重复开发操作从这一点充分的体现了面向对象的扩展能力强。
如何理解面向对象编程?
发布时间:2026/7/11 10:38:41
上述问题也是是很多人在面试时会被问到的一个问题其实说简单也简单说难也难我来简单说说我对面向对象的理解。说起面向对象我们就能联想到面向过程它们是两种处理问题的不同角度面向过程(Procedure Oriented)是一种以过程为中心的编程思想是一种自顶而下的编程模式面向过程我们更加注重事情的每一个步骤及顺序程序员需要把问题分解成一个一个步骤每个步骤用函数实现依次调用即可。而面向对象更注重事情有哪些参与者以及各自需要什么。程序员将问题分解成一个一个步骤对每个步骤进行相应的抽象形成对象通过不同对象之间的调用组合解决问题。这样说可能有些不太好理解我来简单举一个例子比如我们现在要洗衣服。从面向过程的角度来考虑我们可以拆分成一系列步骤打开洗衣机---放衣服---放洗衣粉---清洗---烘干。从上述步骤很明确的可以看出第一步做什么、第二步做什么。面向过程比较直接高效每一步都是朝着最终目的而进行因此这种方式的代码执行起来效率很高。但是面向过程同时存在着代码重用性低扩展能力差后期维护难度比较大等问题。如果从面向对象的角度来思考我们可以拆分出来两个对象人和洗衣机人打开洗衣机放衣服放洗衣粉洗衣机清洗烘干我们把洗衣服这件事进行抽象划分出不同的角色对不同的角色所应该拥有的职责进行分工然后通过组合的方式解决问题。这种面向对象的解决问题的方式更易于代码的复用扩展和维护。这样说可能有些模糊难懂假设我们现在把刚才的例子换一下我们的目的不是洗衣服而是洗鞋子。那么用面向过程来做就需要从头到尾都重新做一遍也许有人会说我们把之前的重复动作复制粘贴一下不就好了吗但各位想想这现实吗这只是一个几行代码的方法如果是上万行千万行的大型项目还能用复制粘贴的方式来解决问题吗显然是不可能的。而如果是面向对象我们只需要把“人”的“放衣服”的动作换成“放鞋子”即可等于是给人添加了一个属性或功能不需要做重复开发操作从这一点充分的体现了面向对象的扩展能力强。