Java面试题第1道--面向对象

面向对象(Object Oriented)对比面向过程是两种不同的处理问题的角度。

面向过程注重事情发生的步骤及顺序,面向过程注重事情的参与者及其所需要做的事情。


例子:洗衣机洗衣服

面向过程:将任务拆解成一系列的步骤(函数):1、打开洗衣机--->2、放衣服--->3、放洗衣粉--->4、按下按钮--->5、清洗

面向对象:对象:人、洗衣机

                 人:打开洗衣机 放衣服 放洗衣粉 按下按钮

                 洗衣机:清洗


各自优势:面向过程:高效、任务明确

                  面向对象:结构清晰,程序是模块化和结构化,更易于复用、扩展和维护。

       劣势:面向过程:需要深入的思考,耗费精力,代码重用性低,扩展能力差,后期维护难度比较大。

                  面向对象:开销大,当要修改对象内部时,对象的属性不允许外部直接存取,所以要增加许多没有其他意义、只负责读或写的行为。这会为编程工作增加负担,增加运行开销,并且使程序显得臃肿。性能低,由于面向更高的逻辑抽象层,使得面向对象在实现的时候,不得不做出性能上面的牺牲,计算时间和空间存储大小都开销很大。


面向对象的三大特征:封装、继承、多态

封装:即属性私有化。根据需要提供setter和getter方法来访问属性,隐藏具体属性和实现细节,仅对外开放接口,控制程序中属性的访问级别。

          目的:增强数据安全性,不能让其他用户随意访问和修改数据,简化编程,使用者不必在意具体实现细节,而只是通过外部接口即可访问类的成员    

继承:继承基类的方法,并作出自己的改变或者扩展。

          Java中一个类只能继承一个父类,且只能继承访问权限非private属性和方法、

          子类可以重写父类中的方法,命名与父类中同名的属性

多态:基于对象所属类的不同,外部对同一个方法的调用,实际执行的逻辑不一样。无法调用子类特有的功能。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值