我们通常听到Java是面向对象的编程语言,C是面向过程的。那么什么是面向对象、什么是面向过程呢?
- 面向过程: 当需要实现一个功能的时候,每一个步骤我们都需要自己去做,处理实现功能的每一个细节。
- 面向对象: 当需要实现一个功能的时候,我们不需要自己去做,可以直接找一个已经具有该功能的东西,来帮我解决问题。
举个栗子:我饿了,想吃咖喱饭
面向过程:买菜 - 洗菜 - 做菜 - 装盘 - 吃
面向对象:点外卖 - 吃
如果说我第二天不想吃咖喱饭,想吃石锅拌饭了。基于两种思想,面向过程我需要去买石锅拌饭的材料,研究石锅拌饭的菜谱。面向对象那我就在某团直接点石锅拌饭。
如果你是一个享受过程的人,那你可能会选面向过程。如果你喜欢一步到位的感觉,那么面向对象可能会更适合你。
面向过程:
优点:性能比面向对象好,因为类调用时需要实例化,开销比较大,比较浪费资源。
缺点:不易维护、不易复用、不易扩展
面向对象
优点:易维护、易复用、易扩展、面向对象有封装、继承、多态的特征,可以设计出低耦合的系统,使系统更加灵活、易于维护。
缺点:性能比面向过程差
今天我们就主要聊一下面向对象这一编程思想。
面向对象的三大基本特性
一、封装性
面向对象 — 封装
- 封装性是面向对象编程的核心思想。
- 指的就是将描述某种实体的数据和基于这些数的操作集合到一起,形成一个封装体。
- 封装的思想保证了类内部数据结构的完整性,使用户无法轻易直接操作类的内部数据,这样降低了对内部数据的影响,提高了程序的安全性和可维护性。
二、继承性
面向对象 — 继承
- 继承是Java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。
- 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
三、多态性
面向对象 — 多态
- 一种事物以多种形态存在,同样的引用调用同样的方法却做了不同的事情。
- 将父类对象应用于子类对象的特征就是面向对象编程中的多态性的体现。
- 多态指的就是在应用程序中出现的“ 重名 ” 现象。多态性允许以统一的风格编写程序,以处理种类繁多的已存在的类及其相关类。这样既降低了维护难度,又节省了时间。