什么是面向对象?

文章目录

  • 什么是面向对象?
    • 一、概述
    • 二、面向过程
    • 三、对比
    • 四、特征
      • 封装
      • 继承
      • 多态

一、概述

面向对象是一种思想,是相对于面向过程而言的。面向对象是将功能等通过对象实现,将功能封装进对象中,让对象去实现具体细节。面向对象的三大特征:封装性、继承性、多态性

  • 封装性就是把对象的属性和实现的细节隐藏起来,仅对外提供公共的访问方式。
  • 继承性就是两种事物间存在一定的所属关系,继承是多态的前提。
  • 多态性就是父类引用指向子类对象。

面向对象的特点是:将复杂的事情简单化;从以前的过程中的执行者变成指挥者;是符合现在人们的思考习惯的一种思想。


二、面向过程

对比面向过程,是两种不同的处理问题的角度。

面向过程更注重事情的每一个步骤及顺序,面向对象更注重事情有哪些参与者(对象)、及各自需要做什么。

比如:把大象装到冰箱

面向过程:

1.打开冰箱 —> 2.把大象装进冰箱 —> 3.关闭冰箱

面向对象:

1.首先先明确对象(人对象、冰箱对象)

2.划分对象职责(人:打开冰箱 把大象装进冰箱 关闭冰箱)(冰箱:冷藏大象)


三、对比

面向过程:

优点:性能比面向对象高,适合跟硬件联系很紧密的东西,列如单片机就采用的面向过程编程。

缺点:没有面向对象易维护、易复用、易扩展。

面对对象:

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

缺点:性能比面向过程低。


四、特征

封装

封装的意义,在于明确标识出允许外部使用大家所有成员函数和数据项。内部细节对外部调用透明,外部调用无需修改或者关系内部实现。

  1. JavaBean的属性私有,提供get() set()对外访问,因为属性的赋值或者获取逻辑只能由JavaBean本身决定,而不能由外部胡乱修改
private String name;
public void setName(String name){this.name = "bdpenguin_"+name;
}
该name有自己的命名规则,明显不能由外部直接赋值

2.orm框架

操作数据库,我们不需要关心链接是如何建立的、sql是如何执行的,只需要引入mybatis,调方法即可


继承

继承基类的方法,并做出自己的改变和/或扩展

子类共性的方法或者属性直接使用父类的,而不需要自己再定义,只需扩展自己个性化的


多态

基于对象所属类的不同,外部对同一个方法的调用,实际执行的逻辑不同。

继承,方法重写,父类引用指向子类对象

父类类型 变量名 = new 子类对象 ; 变量名.方法名();
//无法调用子类特有的功能

参考

图灵课堂

什么是面向对象?

如何理解面向对象(什么是面向对象?)相关推荐

  1. java基础面向对象_Java基础面向对象

    一.面向过程的思想和面向对象的思想 面向对象和面向过程的思想有着本质上的区别,作为面向对象的思维来说,当你拿到一个问题时,你分析这个问题不再是第一步先做什么,第二步再做什么,这是面向过程的思维,你应该 ...

  2. python完全支持面向对象编程_Python 面向对象编程概要

    面向对象三大特性 面向对象的三大特性是指:封装.继承和多态. 封装 封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容. 所以,在使用面向对象的封装特性时,需要: 将内容封装到某处 ...

  3. php控制器面向对象编程,PHP 面向对象编程(2)

    一些内建方法: class Person { public $isAlive = true; function __construct($name) { //这里我们创建了一个name的属性 $thi ...

  4. python 完全面向对象_python之面向对象

    Python Python开发 Python语言 python之面向对象 第一章 面向对象初识 面向对象的三大特性是什么? 抽象.继承.多态. 面向对象第一个优点:* 对相似功能的函数,同一个业务的函 ...

  5. PHP什么是面向对象?PHP面向对象小结

    本篇文章给大家带来的内容是PHP什么是面向对象?PHP面向对象小结.有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所助. 面向对象特性: *重用性 (每个模块都可以在项目中重复使用) *灵活 ...

  6. 什么是面向对象编程和面向对象编程语言

    面向对象编程是一种编程范式或编程风格.它以类或对象作为组织代码的基本单元,并将封装.抽象.继承.多态四个特性,作为代码设计和实现的基石 . 面向对象编程语言是支持类或对象的语法机制,并有现成的语法机制 ...

  7. python面向对象的优点_Python面向对象编程——总结面向对象的优点

    Python面向对象编程--总结面向对象的优点 一.从代码级别看面向对象 1.在没有学习类这个概念时,数据与功能是分离的 def exc1(host,port,db,charset): conn=co ...

  8. python面向对象编程的优点-Python面向对象编程——总结面向对象的优点

    Python面向对象编程--总结面向对象的优点 一.从代码级别看面向对象 1.在没有学习类这个概念时,数据与功能是分离的 def exc1(host,port,db,charset): conn=co ...

  9. Java面向对象的编程⑤面向对象

    今日内容:java面向对象 1面向对象的思想 面向对象和面向过程区别: 面向对象是相对于面向过程,面向过程指的功能行为,面向对象指将功能封装对象中,强调的是功能的对象 面向过程:打开门大象放进去关闭门 ...

  10. 【Java开发语言 03】第三章 面向对象编程(面向对象与面向过程+类和对象+类成员一:属性+类成员二:方法+对象的创建和使用+封装和隐藏+构造器+关键字this,package,import)

    面向对象编程 1 面向对象与面向过程 1.1 java类及类的成员 2 java语言的基本元素:类和对象 2.1 类的语法格式 2.2 创建Java自定义类 2.3 对象的创建及使用 3 类的成员之一 ...

最新文章

  1. pandas使用resample进行不同粒度下的时间特征重构实战:构建时间维度统计特征
  2. 【深度学习】Keras实现回归和二分类问题讲解
  3. 继承static的注意点
  4. idea 升级到2020后 无法启动_【维修案例】2020年一汽奥迪Q5L发动机无法启动
  5. 配电技术——配电线路系统电气设备详解
  6. tcp udp区别优缺点_一文搞懂TCP与UDP的区别
  7. 带有Swagger的Spring Rest API –公开文档
  8. 深度学习02——Softmax、DNN、WideDeep Model
  9. 黄聪:电子商务关键数字优化(线上部分,上)
  10. mouseChildren= false
  11. 程序员创业其实相比其他行业也有一些优势
  12. SQL Server 数据库安装教程SQL Server 2017
  13. 平面变压器的设计(翻译)(5)
  14. 三星dex安装linux软件,三星DeX应用试玩体验 无需扩展坞就能把PC变成工作站
  15. Win10电脑资源管理器怎么打开?五种打开方式详解
  16. javascript:alert(document.cookie)
  17. 大白菜安装linux系统安装教程
  18. Python3-word文档操作(九):给word文档添加/删除一张图片-利用docx库
  19. AUSU F6A系列笔记本装xp遇到的问题
  20. Python 计算思维训练——输入和错误处理练习(一)

热门文章

  1. 转:使用Python对音频进行频谱分析
  2. 微信小程序 —— 倒计时(展示时钟)
  3. 可信认证之九阴真经二
  4. Android中输出版权标记符号Copyright mark
  5. 未来网游三大主流技术
  6. 产品驱动增长模式的最佳实践
  7. UVA11400:简单dp
  8. 连接中间层加密服务失败,请确认中间层加密服务已启动
  9. 总结:LSM-Tree
  10. 概率统计matlab实验,概率与数理统计matlab实验报告1.doc