【C/C++面试必备】面向对象与面向过程的区别

【C/C++面试必备】面向对象与面向过程的区别这篇文章来说下面向对象编程 那什么是面向对象编程呢 是这样 还是这样 当然 都不是 介绍面向对象之前 那必须先说一下面向过程 什么是面向过程呢 面向过程 Procedure OrientedProg 简称 POP 是一种编程模型 由一系列要执行的计算步骤组成 通常采用自上而下 顺序执行的方式 面向过程的编程语言包括 C Fortran Pascal Basic 等 下面来看一个简单的例子 咱们以把大象放进冰箱为例 面向过程的方式分为三步 1

那什么是面向对象编程呢?

介绍面向对象之前,那必须先说一下面向过程。

什么是面向过程呢?

面向过程(Procedure-Oriented Programming,简称POP)是一种编程模型,由一系列要执行的计算步骤组成,通常采用自上而下、顺序执行的方式。

面向过程的编程语言包括:C、Fortran、Pascal、Basic等。

下面来看一个简单的例子:

咱们以把大象放进冰箱为例,面向过程的方式分为三步:

1.打开冰箱

2.把大象放进冰箱

3.关闭冰箱

图形化表示一下,如下图所示:

【C/C++面试必备】面向对象与面向过程的区别
图1 面向过程执行步骤 

转化为代码大致是如下形式:

#include 
  
    // 打开冰箱函数 bool openRefrigerator() { //........ } // 放进大象函数 bool pushElephant() { //........ } // 关闭冰箱函数 bool closeRefrigerator() { //...... } int main() { //........ if(openRefrigerator()) // 判断是否可以打开冰箱 { pushElephant(); // 放进大象 closeRefrigerator(); // 关闭冰箱 } //....... } 
  

接下来步入正题,说下面向对象。

面向对象编程(Object-oriented programming,简写:OOP)是一种计算机编程模型,它围绕数据或对象而不是功能和逻辑来组织软件设计,更专注于对象与对象之间的交互,对象涉及的方法和属性都在对象内部。说的更底层一点就是面向对象是一种依赖于类和对象概念的编程方式。

面向对象的编程语言包括:C++、Java、Python、C#以及JavaScript等。

类:是相同种类对象的抽象,是它们的公共属性。

对象:对象是类的实例。

面向对象将一个事物描述为一个对象,这个对象包括各种属性和方法,例如上面把大象装进冰箱的例子,冰箱的属性包括:长、宽、高、温度等,方法有:打开、关闭、存储等,这些属性和方法都属于这个对象。

在现实生活中,一座楼、一辆车、一个班级、一个人等都可以对象化。

同样,也把大象放进冰箱为例进行说明,面向对象的方式为:

冰箱是一个对象,大象也是一个对象。冰箱有自己的方法,打开、存储、关闭,有自己的属性:长、宽、高等。大象也有自己的方法,吃、走路等,有自己的属性:体重、高度、体积等。

可以用下图来表示:

【C/C++面试必备】面向对象与面向过程的区别

【C/C++面试必备】面向对象与面向过程的区别

转化为代码就是:

#include 
  
    using namespace std; class Elephant { private : int length; // 长 int weight; // 重量 public : // 吃 bool eat() { //...... } }; class Refrigerator { private : int length; // 长 int width; // 宽 int height; // 高 public : // 打开冰箱 bool openRefrigerator() { //........ } // 放进大象 bool pushElephant(Elephant elephant) { //........ } // 关闭冰箱 bool closeRefrigerator() { //........ } }; int main() { Refrigerator ref; // ref 冰箱对象 Elephant ele; // ele 大象对象 if(ref.openRefrigerator()) // 打开冰箱 { ref.pushElephant(ele); // 放进大象 ref.closeRefrigerator(); // 关闭冰箱 } } 
  

最后,来看一下面向过程和面向对象的区别,如下所示:

(1)安全性

面向对象比面向过程安全性更高,面向对象将数据访问隐藏在了类的成员函数中,而且,类的成员变量和成员函数都有不同的访问属性。而面向过程并没有合适的方法来隐藏程序数据。

(2)程序设计上

面向过程通常将程序分为一个个的函数,而面向对象编程中通常使用一个个对象来,函数通常是对象的一个方法。

(3)过程

面向过程通常采用自上而下的方法,而面向对象通常采用自下而上的方法。

(4)程序修改

面向对象编程更容易修改程序,更容易添加新功能。

最后,给大家留一个小问题:猜一猜 Go 是面向对象 or 面向过程 ?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210299.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午7:52
下一篇 2026年3月19日 上午7:52


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号