【Java面试】谈一下你对面向对象的理解?

面试官:谈一下你对面向对象的理解?

我:好的,首先面向对象编程(OOP,Object Oriented Programming)是一种编程思想也可以说是一种编程架构,它指导我们在进行程序设计时的设计原则。谈面向对象,我们可以和面向过程结合着来看:面向过程编程,强调的是过程,比如我们要设计一个把大象放入冰箱的程序,面向过程要求我们思考这个程序的执行过程,然后实现这个过程中的每一步,而面向对象强调的是对象,以面向对象的思想解决这个问题时,我们思考的是这个程序中可以抽象出哪些对象,各个对象有哪些特征(属性和方法),它们是怎样相互协作完成的一项工作的,这体现了面向对象的抽象原则,当然面向对象的原则还包括封装、继承和多态,封装是指,将每个对象自有的属性进行封装,不允许外部直接获取或者操作,而是通过向外部暴露某些方法的形式让外部进行操作,继承是指:比如如果不止大象这一种动物,就可以进一步抽象出动物这个类,然后大象、松鼠、长颈鹿继承自动物这个类,继承原则提供了很好代码复用性,减少冗余代码,让代码更简洁;多态是指当父类引用指向子类对象时,父类调用在子类中重写的方法,会因为子类对象的不同而表现不同。那么为什么搞这么复杂呢?感觉面向过程的编程方式更加简洁明了清晰易懂呀,确实是的,在程序设计发展的早期是没有面向对象的,面向过程的编程简洁明了而且程序运行效率高,但是随着软件系统的发展,业务和功能越来越复杂,面向过程的设计方式开始展现出劣势,往往需要不断地重复造轮子,所以面向对象应运而生,它的出现达到了软件工程的三个主要目标:重用性、灵活性和扩展性,更适用于现代复杂和软件程序设计,而对程序运行效率有更高要求并且程序没那么复杂的领域比如单片机设计还是更适用于面向过程的程序设计,这大概就是我对面向对象的理解。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/huhuhutony/article/details/120810865