面向对象与面向过程的区别?

2020-02-04 09:20发布

也不知道这个问题该发在那个栏目里了 就发在51栏目里吧  我想很多菜鸟都和我一样 搞不懂面向对象与面向过程的区别 希望老鸟们多多指教;

在百度里搜索里许多帖子,都讲面向对象与面向过程的区别,但是几乎都讲不明白。我想可能这就是搞硬件出身的和搞软件出身的不能融合到一起造成的吧;

我单片机执行是一步一步的执行的。我先去干这个,然后再去干那个,然后就是等待,这个就是面向过程,但是我很难理解面向对象;(本人没有PC机编程经验,就懂得些单片机)

我想好的实例更能说明一切吧。不要举太多例子,就像刚开始学中断,用烧水洗衣服做饭但是我还是花了好久好久才理解明白中断是干什么的,其实如果用最简单的程序举例,或许几行代码就能说清楚了;

这个问题困扰我好久了。希望老鸟们赐教,谢谢~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
46条回答
118139
1楼-- · 2020-02-07 10:30
从这本书
<<面向对象的理论与C++实践>>里摘录一些内容


面向对象在计算机中的含义跟类息息相关
类是面向对象系统中最重要的概念,面向对象程序设计中所有的操作都归结为对
类的操作。。

类与对象的关系:
通常我们把具有同样性质和功能的东西所构成的集合称为类,在C++中可以把具
有相同内部存储结构和相同一组操作的对像看成属于同一类,在指定一个类后,
往往把属于这个类的对像称为类的实例,实际上对象和实例表达的是同一个意思
如何来定义一个具体的对像,也就是使类实例化成为我们所需要的具体事物,实
际上对像的创建过程就是类实例化的过程

创建一个具体对像有两种方法:
(1)在定义类的同时创建对像  我们在给出类定义描述时创建对像如下所示

class date{
             int month,day,year;
     
           public:
             void set(int,int);
             void print();
             int getyear();
             int getmonth();
             int getday();   
          }tt;    //这里同时创建对像tt

在定义类date类的同时创建了data类的对像tt,这时创建的是一个全局对象


(2)在使用时定义对象
上面的在定义类同时创建对像他的生存周期在整个程序过程中一直存在,只有在整个程序结束时才会自动消亡,为了消除这种弊端,可以在需要使用些类对象时,再在使用它的函数中定义对像,格式与一般变量定义相同如
data tt;                                                               
此时定义了tt是data类的一个对像


下面是使用类的例子:

class point{
            int x,y;
          public:
           void setpoint(int vx,int vy) {x=vx;y=vy;}
           };


void f1()
  { point p1;              //创建point类的对像p1
    p1.setpoint(10,10);    //给point类对像p1的私有成员赋值

  }
richey07
2楼-- · 2020-02-07 13:06
奶牛挤奶
面向过程:程序员调用函数 milk(),
面向对象初步:生成奶牛对象cow ,调用方法cow.milk
面向对象进一步:考虑职责划分,生成农场主对象和奶牛对象,将挤奶方法划分给农场主
hemjidn
3楼-- · 2020-02-07 16:05
凑热闹
面向对象如把电机抽象出来建立类
建立正转反转刹车加速减速等等的方法。
使用前还得知道电机的大小、功率、方式、交流直流等等的属性。
至于是如何实现正转反转就得进行面向过程来编写了
dew2901
4楼-- · 2020-02-07 19:43
 精彩回答 2  元偷偷看……
xuxi2009
5楼-- · 2020-02-07 23:25
面向对象的思想,在你写代码过程中会自然领悟的,最好接个大点的项目,用自己的想法实现之,用C做就行,等你发现C在实现你的项目时的不足时,你就会自然而然的向面向对象上靠了,比如你定义了很多全局变量,没有机制来保护这些全局变量,而且每个全局变量也只是被几个函数访问,基本不可能每个函数都会访问到该变量,那么这个全局变量在外面裸露着放着既不方便找,尤其在代码量大的情况下,看着也不顺眼,要是能和操作它的函数放在一块就好了…
xuxi2009
6楼-- · 2020-02-08 03:22
这要看你做什么项目,如果在单片机上做很简单的项目,一个C文件就可以搞定,可能用不着面向对象,要记住:面向对象不等于C++,面向对象可以用任何语言实现,C++也只是面向对象的一种实现,面向对象也不仅仅是类。

一周热门 更多>