在学习的过程中,经常会遇到一些在面试中遇到简单的问题但回答又不尽人意,我这里整理一个面试中最喜欢问的一个问题:什么是面向对象,虽然概念很简单,但是要想回答好这个问题还需要细细回想其中的原理:
什么是面向对象:我个人的理解是,在做项目的时候,需要将业务转换成代码,这个抽象的过程就是编程范式,而面向对象就是其中的一种,类似的还有面向过程,函数式编程。
补充:什么是面向过程:就是分析出解决问题的步骤,然后一步一步的使用函数去实现,使用的时候一个一个依次调用就可以了;
什么是函数式编程:是一种编程范性,它是将电脑运算看作数学上的函数计算, 并且避免使用程序状态以及易变队形----(大致的意思);
回答完了基本概念,都需要回答面向对象的特点:继承,多态,封装;
继承:可以让子类复用父类的公开的方式和变量;
多态:不同类的对象对同一消息做出不同的响应;
封装:屏蔽一系列的细节,使外部调用时只要知道这个方法的存在即可;
有时候面试人员还会问一些优缺点:
面向对象的优缺点:
优点:易维护,易复用,易扩展,由于面向对象的继承,封装,多态的特型,可以设计出低耦合的系统,使系统更加灵活,更利于维护;
缺点:性能比面向过程低;
补充:面向过程的优缺点:
优点:性能比面向对象高,因为类调用实例化,开销比较大,消耗较多资源,因此性能是最重要的一个因素:
缺点:没有面向对象易维护,易复用,易扩展;
纯手敲,请各位多多指教。