如何理解面向对象和面向过程?

先说概念,是什么?

面向过程把问题分解成一个个步骤,每个步骤用函数实现,以此调用即可。

我们在进行面向过程编程的时候,不需要考虑那么多,上来先定义一个函数,然后使用各种诸如if-else、for-each等函数进行代码执行。最典型的用法就是实现一个简单的算法,比如冒泡排序。

面向对象将问题分解成一个个步骤,对每个步骤进行相应的抽象封装来解决问题。比如想造一辆车,上来要先把车的各种属性定义出来,然后抽象成一个Car类。

再讲面向对象扩展

面向对象有三大基本特性和五大原则

三大基本特性

封装

封装就是把客观事物抽象成一个Java类,然后在类中存放属性和方法。

继承

继承的主要目的是复用。子类继承父类,这样就可以把父类的属性和方法都继承过来。Java中是单继承多实现的,但是接口是运行多继承的。

多态

多态是指父类中定义的方法被不同子类继承之后,可以通过重写父类方法,使得每个子类有不同的实现和含义。

五大基本原则
  • 单一职责原则
  • 开放封闭原则
  • 里氏替换原则
  • 依赖倒置原装
  • 接口隔离原则

五大原则的举例(代码后续补上)
  • 单一职责原则

假如有一个类用于日志消息的处理,但是这个类不仅仅负责创建日志消息,还负责将日志写入文件。根据单一职责原则,我们应该将这两个职责分开,让一个类专注于创建日志消息,而另一个类专注于日志消息的存储。

  • 开放封闭原则

假如有一个图形绘制应用程序,其中有一个Shape类,再遵守开闭原则的情况下,如果要添加新的形状类型,应该做到扩展Shape类而无需修改Shape类的现有代码。这可以通过创建继承自Shape的新类来实现,即对修改封闭,对扩展开放,而继承正是这一原则的体现。

  • 里氏替换原则

假设有一个函数接受Bird对象作为参数。根据历史替换原则,这个函数应该能够接受一个Bird的子类对象(比如麻雀类和企鹅类)。其实也是继承的体现。

  • 依赖倒置原装

程序要依赖于抽象接口,而不是具体的实现。 比如构建一个电商应用程序时,一个高层的“订单处理”模块不应该会直接依赖于一个底层的“数据访问”模块。相反,他们应该依赖于抽象,或者依赖于一个接口。这样数据访问的具体实现可以随时改变,而不会影响订单处理模块。

  • 接口隔离原则

使用多个小的专门的接口,而不要使用一个大的总接口,如果有个多功能打印机接口包括打印、扫描功能,那么只需要打印功能的客户端应该不必实现扫描和复制的接口。这可以通过将大接口分解为更小且更具体的接口来实现。也就是定义打印和扫描两个接口,再定义一个打印机类来实现打印和扫描接口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值