面向对象的三大特性

谈谈面向对象的理解

面向对象和面向过程

面向对象是一种编程思想,主要的编程思想有两种:面向过程和面向对象。
举个例子,洗衣机洗衣服这件事;
如果用面向过程的思想来理解这件事,就需要把洗衣机洗衣服这件事拆分成:打开洗衣机-》放衣服-》选择工作模式-》运行-》拿出衣服等等。

如果用面向对象的思想来理解这件事,需要分析这件事的参与者,有人、洗衣机、衣服,也就是这件事涉及到的对象。然后定义这些对象的属性和行为。拿洗衣机来举例,洗衣机的属性应该包括,洗衣机品牌、是否开启、是否运行、工作模式等等;行为包括:注水、洗涤、漂洗、排水、脱水等等。

如此看来,面向对象比面向过程复杂许多,但是这一点是相对的,如果项目系统十分庞大,面向过程的思想写出来的代码也会复杂。

面向过程的特点是:符合人的常规思维,把一件事情按照顺序、逻辑来拆分,简单。

面向对象的特点是:抽象出事件的参与者,定义参与者的属性和行为,扩展性、维护性、复用性都更好。

面向对象的三大特性

封装、继承、多态
封装:就是抽象出事件的参与者,定义参与者的属性和行为,并给出属性和行为的约束,既属性和行为对于外部的可见性。
拿JavaBean来举例,一般的JavaBean的属性都是私有的,防止外部随意修改对象的属性,而这些属性各对应着对外公开get、set方法,用于通过对象本身来获取和设置属性。为什么要这样做?是因为用过set方法为对象的私有属性赋值比直接通过"对象.属性=xxx"的方式更加安全。set方法可以根据JavaBean的特点定义安全约束,比如,人这个对象有年龄的属性,set方法里可以加入判断,如果set进来的年龄不在0-150这个年龄范围内,抛出参数异常。

继承:子类继承父类,子类就包含了父类的所有非私有熟悉和方法,提高了代码的复用性。且子类可以对父类的方法进行覆盖和重写。

多态:父类引用指向子类对象。提高代码的复用性,外部对同一个方法的调用,执行的逻辑不一样。

举个例子:动物(父类),狗、猫、狼都是其子类。
在动物类定义一个方法:

public void call(Animal animal) {
	System.out.println(animal.getCall());
}

外部函数中,如果传入的是Animal的子类对象,那么执行System.out.println(animal.getCall());会根据animal这个引用指向的实际对象来调用对应的getCall方法。

持续更新中,以上是学习笔记可能存在错误,望指正…

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值