面试:如何理解面向过程和面向对象

       对于编程语言,大学基本都是从c语言学起,而c语言是面向过程的语言,逐渐上了大二或者自学接触到了c++或者java,知道这类编程语言是面向对象的,那这两者应该怎么理解呢?在面试中经常会遇到过,有一次面腾讯的实习,被面试官问到,当时答的支支吾吾,在博客上找了几篇觉得不是太了解,于是自己写一下,不知道对错,就当做自己的笔记吧,希望大神指正。

问:谈谈你对面向过程和面向对象的理解

①首先知道面向对象主要有三大特性:继承,封装,多态。继承和封装比较重要,继承就是继承父类的属性和方法,这样子就不用自己再去创建,封装就是把自己的一些属性和方法包装起来,这样起到了安全的作用。

②顾名思义,由书面意思可以看出面向对象就是只关注对象本身和结果,面向过程就是注重是怎么实现这个过程。举一个例子:现在面试官您与我在谈话,如果以面向过程的思想分析,就是您问一句,我答一句,比如自我介绍,绩点,竞赛经历,实习经历等等,我就要一个一个回答您,重点就放在这些过程上面,如果是用面向对象的过程理解,就是可以new两个对象出来,一个是我,一个是面试官,然后在各自的对象里封装了提问(回答)这些绩点的方法,竞赛经历的方法,实习经历的方法,然后取各自所需调出来就可以。这样做的好处是万一在中途中还要加上问我其他情况,如果是面向过程,就需要从头到尾再来一次,强调了过程。(在这里好像不是很恰当。。。)如果是面向对象,那只要把遗漏的信息封装成方法并且放在对象里,那我直接调用就可以了,强调的是对象。    

③从上面例子可以看出

面向过程:

         优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源,比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。

        缺点:没有面向对象易维护、易复用、易扩展

面向对象

  优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护

  缺点:性能比面向过程低

目前还是小渣渣,只是个人愚见,因为这样我比较容易理解一点。 大神不喜勿喷哈。在此谢过啦     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值