关于面试中谈谈你对面向对象思想的认知的小结

        关于面向对象思想,想必在面试中被问到是家常便饭的事,今天结合自己的体会(虽然工作一年没怎么写过C++),和借助于互联网信息,对较好的观点进行了汇总(大神可以绕道了,哈哈。)。当然在提到面向对象思想的同时,我们还不得不提到面向过程的思想。

        1.比较精辟的回答。面向过程,自己造电脑。面向对象,自己组装电脑。

      2.自己理解的回答。面向过程是一件事“该怎么做“,面向对象是一件事“该让谁来做”,然后那个“谁”就是对象,他要怎么做是他自己的事,反正最后一群对象合力能把事做好就行了。

     3.较好观点。

       面向对象是基于万物皆对象这个哲学观点. 把一个对象抽象成类,具体上就是把一个对象的静态特征和动态特征抽象成属性和方法,也就是把一类事物的算法和数据结构封装在一个类之中,程序就是多个对象和互相之间的通信组成的.

       面向对象具有封装性,继承性,多态性.封装隐蔽了对象内部不需要暴露的细节,使得内部细节的变动跟外界脱离,只依靠接口进行通信.封装性降低了编程的复杂性. 通过继承,使得新建一个类变得容易,一个类从派生类那里获得其非私有的方法和公用属性的繁琐工作交给了编译器. 而 继承和实现接口和运行时的类型绑定机制 所产生的多态,使得不同的类所产生的对象能够对相同的消息作出不同的反应,极大地提高了代码的通用性. 

       总之,面向对象的特性提高了大型程序的重用性和可维护性.

      4.在孙鑫的《VC++深入详解》中提到类和对象的概念是这样描述的。

       C++语言是面向对象的语言,那么,什么是类?什么是对象呢?

    类描述了一类事物,以及事物所应具有的属性,例如:我们可以定义“电脑”这个类,那么作为“电脑”这个类,它应该具有显示器、主板、CPU、内存、硬盘,等等。那么什么是“电脑”的对象呢?例如,我们组装的一台具体的电脑,它的显示器是美格的,主板是华硕的,CPU是Intel的,内存是现代的,硬盘用的是希捷的,也就是“电脑”这个类所定义的属性,在我们购买的这台具体的电脑中,有了具体的值。

    这台具体的电脑就是我们“电脑”这个类的一个对象。我们还经常听到“类的实例”,什么是“类的实例”呢?实际上,类的实例和类的对象是一个概念。

    对象是可以销毁的。例如,我们购买的这台电脑,它是可以被损毁的。而类是不能被损毁的,我们不能说把电脑毁掉,“电脑”类是一个抽象的概念。

        5.完善的笔试题总结(***黑马程序员)。

      面向对象相对于面向过程来说,它从现实世界中客观存在的事物(即对象)出发来构造软件系统,并根据这些事物的本质特点,把它们抽象地表示为系统中的基本构成单位,更能接近现实事物本来的特性和面貌。
     面向对象优点:
     1.一切皆对象,相对于面向过程编程而言提高了代码的可重用性;
     2.面向对象的三个重要特征:封装、继承、多态,提高了系统的灵活性与健壮性;
     3.面向对象的中的属性和方法的可访问性提高了程序的安全性,数据调取的多样性.

     总结。以上基本上是我也比较认可的观点的汇总。至于自己到底能够理解有多深入,还需在不断的实践中自己去领悟。继续努力吧!


你可能感兴趣的:(编程思想)