面向对象和面向过程

      面向过程:顾名思义,面向过程编程关注的是解决问题的过程,分析一个问题的解决过程,得到解决问题的步骤,按顺序执行每一个步骤,最后解决问题。一个步骤可以是封装的一个函数,也可以是一行代码。通常是对数据结构进行操作,例如改变数组或者变量。

      面向对象编程,关注的是通过使用对象来解决问题,使用对象来为我们提供服务。在面向对象编程,万事万物皆对象,对象是现实世界事物在程序中的虚拟表示和体现。那么对象是怎么来的呢?一般我们称对象是类的实例。而类是现实世界事物的抽象表示,它将数据和和数据的行为封装在一起。

 

     面向对象的三大特征:封装、继承、多态。

     封装:将对象的属性数据及对象行为的实现细节隐藏起来,外界只能反问对外开放的方法接口,这样既能保障数据的安全,发放的功能对外界是透明的,我们对内部细节的修改不会对外部造成影响。

    继承:继承就是子类继承父类的属性和行为,使得子类的的对象具有父类实例的属性和方法。对于子类一些代码就不必再编写。这样进行服用可以极大的减少代码的数量。当子类重写父类方法时,虽然具体实现已经不同,但是此方法在子类和父类中的含义是一致的。

     多态:字面意思多种形态,一般有以下四个方面的解释

     a)重载:同一个类中具有与相同方法名称但是方法签名不一致

     b)重写:子类重写父类的方法

     c) 赋值多态:声明父类创建子类实例

     d) 泛型:泛型类或者泛型方法可以在使用时再传入参数类型

 

    面向对象五大原则:

  • 单一职责原则:一个类只做一件事情,有且只有一个改变它的理由,只有当这件事情本身出现变化时,才发生变化。
  • 开放封闭原则:一个模块在设计时应该是可扩展,当出现新的功能时,不需要修改原有代码,只需要在原来的基础上进行开发即可,这就是对扩展开放,对修改关闭。
  • 里氏替换原则:子类可以替换父类出现在父类任何可以出现的地方。此时,子类和父类的设计应该有一些约定,也称为基于契约设计。子类的前置条件和后置条件规则: 

       a)只能使用相等或更弱的前置条件替换原始的前置条件 (子类必须接受父类可接受的一切) 

       b) 只能使用相等或更强的后置条件替换原始的后置条件 (父类的用户不应被使用的子类的输出所扰乱)

  • 接口分离原则:不同功能的接口应该分离开来,不应强迫客户程序实现一个它用不上的接口,或是说客户端不应该被迫依赖它们不使用的方法。
  • 依赖倒置原则:高层模块不应该依赖于底层模块。二者都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值