面向对象和面向过程(总结版)

目录

前言

一、什么是面向对象?什么是面向过程?

二、面向对象和面向过程的优缺点对比

三、面向对象编程的特性:封装、继承、多态。


前言

为了更好的理解,我总结了什么是面向对象,什么是面向过程。以下内容参考了很多博客的总结

需要详细的理解请移步:(14条消息) Java封装性及四种权限修饰符详解_Code皮皮虾的博客-CSDN博客_封装修饰符

(14条消息) 《Java 后端面试经》Java SE 部分_华仔仔的博客-CSDN博客

从语言方面出发:
对于C语言来说,是完全面向过程的。
对于C++语言来说,是一半面向过程,一半是面向对象。(C++是半面向对象的)
对于Java语言来说,是完全面向对象的。


一、什么是面向对象?什么是面向过程?

面向对象一般和面向过程结合来看的

面向过程(Procedure Oriented 简称 PO):把事情拆分成几个步骤(相当于拆分成一个个的方法和数据),然后按照一定的顺序执行。

面向对象(Object Oriented 简称 OO):面向对象会把事物抽象成对象的概念,先抽象出对象,然后给对象赋一些属性和方法,然后让每个对象去执行自己的方法。

举例:用洗衣机洗衣服,来看一下两者的差别。

面向过程:

放衣服(方法)-->加洗衣粉(方法)--> 加水(方法)--> 漂洗(方法)--> 清洗(方法)--> 甩干(方法)

面向对象:

new 出两个对象 ”人“ 和 ”洗衣机“

”人“ 加入属性和方法:放衣服(方法)、加洗衣粉(方法)、加水(方法)

”洗衣机“ 加入属性和方法:漂洗(方法)、清洗(方法)、甩干(方法)

然后执行:

人.放衣服(方法)-> 人.加洗衣粉(方法)-> 人.加水(方法)-> 洗衣机.漂洗(方法)-> 洗衣机.清洗(方法)-> 洗衣机.甩干(方法)

二、面向对象和面向过程的优缺点对比

面向过程:

优点:效率高,因为不需要实例化对象。

缺点:耦合度高,扩展性差,不易维护(例如:每个步骤都要有,不然就不行)

面向对象:

优点:耦合低(易复用),扩展性强,易维护,由于面向对象有封装、继承、多态性的特点,可以设计出低耦合的系统,使系统更加灵活、更加易于维护。

缺点:效率比面向过程低。

三、面向对象编程的特性:封装、继承、多态。

封装性:

类的封装性为类的成员提供公有(public)、缺省(默认default)、保护(protected)和私有(private)等访问权限,目的是隐藏类中的私有变量和类中方法的实现细节。

public : 对所有类可见。使用对象:类、接口、变量、方法

protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。

default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。

private : 在同一类里可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

通过以下表来说明访问权限:

继承性:允许通过继承原有类的某些特性或全部特性而产生全新的类,原有的累称为父类,产生的新类称为子类。子类不仅可以直接继承父类的共性,而且也可以创建它特有的个性。

多态性:是指在基类中定义的属性和方法被子类继承之后,可以具有不同的数据类型或表现出不同行为,多态性有两种表现形式:重载和覆盖,多态最大的特征就是向上造型。

  • 92
    点赞
  • 381
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值