面向对象的概念与3大特征

一、面向过程和面向对象

面向对象是相对于面向过程的一种编程方式。

面向过程的编程方式由来已久。这种方式非常的直观,需要写一个功能,直接就写几行实现方法。比如你需要操作一个人移动到某个点,直接就写代码修改一个人的坐标属性,逐格的让他移动到目标点就行了。

面向对象的编程方式,操作的是一个个的对象,比如你还是需要操作一个人的移动,你需要先实例化那个人的一个管理类对象,然后告诉这个“人”的对象,你需要移动到什么地方去。然后人就自己走过去了。至于具体是怎样走的,外部不关心,只有“人”对象本身知道。

二、面向对象的3大特征
1、封装:

就是把对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。展开说的话,就是将对象的属性和行为绑定在一起,并放置在一个逻辑单元内。该逻辑单元负责将描述的属性隐藏起来,外界对客体内部属性的所有访问只能通过提供的用户接口实现。

例如:
银行是一个结构非常复杂,功能非常众多的机构。但实际上,我们并不会很关心它的内部是怎样运作的,比如银行的员工是怎样数钱的,怎样记录存款,怎样开保险柜,等等。这些对于外部的人员来说,知道了可能会引起更多不必要的麻烦。所以银行只需要告诉你,你可以在这个窗口办理业务,可以存款和取款,就够了。
在这里插入图片描述
其中private为访问修饰符、其功能是:在同一类可见。使用对象:变量、方法。**注意:**不能修饰类(外部类)。访问修饰符有:default 、 private、public 、 protected。

2、继承:
继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。继承性是面向对象程序设计语言不同于其他语言的最重要的特点,是其他语言所没有的。在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。在类层次中,子类继承了多个父类的数据结构和方法,则成为多重继承。采用继承性,提供了类的规范的等级结构,使公共的特性能够共享,提高了软件的重用性。

例如:
刚才提到了银行有2种最基本的业务,存款和取款。但现实中,大部分的银行都不止这两种业务,还有很多其他的业务,比如投资窗口、办理对公业务的窗口等等。这些业务,是在最基本的银行存取款业务的基础上再添加的,所以我们可以理解成,基本的银行是只有2种业务的,然后后来的银行在保留了原有银行的业务基础上,再扩展了其他的业务。

如果把基本的银行看做父类(基类),包含存款和取款2个公共方法,那么后来的银行可以看做是子类,它在继承了基本银行存取款的公共方法只后,还自己新增了投资和对公业务两个公共方法。有些银行甚至会重写基本的存取款功能,让自己和基本银行的业务有一定的区别。这个过程,就是继承。

3、多态:
多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。多态性允许每个对象以合适自身的方式去响应共同的消息。多态性增强了软件的灵活性和重用性。

例如:
同样是存款的业务,如果我拿着人民币和拿着美元去银行办理,实际上银行处理的方式是不一样的。这种办理同一种业务(公共方法),由于给予的内容(传入的参数类型或者数量)不一样,而导致操作(最终实现的方法)不一样,叫做编译多态,也叫做函数的重载。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值