旁白:这是一个很大的问题,我觉得面试官主要想听到的一定是面向对象给编程带来的好处,也就是说它独有的特点,所以重点应该要抓住封装、继承和多态三大特性来说。这里我回答的思路是:①面向对象思想的由来;②如何理解面向对象编程思想;③本人对面向对象思想三大特性的理解。

:①首先面向对象是一种编程思想。在面向对象这种编程思想出现以前,主流的是以c为首的面向过程的语言(cpp可以认为既是面向过程也是面向对象就,但都不彻底),它更多的是按照计算机处理事务的思想来编写代码,被称为函数,这种编程思想对我们人类来说太复杂,不符合我们人类的思考方式,因此面向对象的编程思想孕育而生。

②然后要理解面向对象,前提要理解什么是对象;万物皆对象这句话就能说明什么是对象,但这个太抽象,举个简单的例子,你是一个对象,我是一个对象,电脑是一个对象,房子是一个对象,宇宙是一个对象等等等,只要你能说的出来的东西都可以认为是一个对象;那么面向对象就可以理解为把任何事物抽象成一个对象来对待,之后再对这个对象进行相关的操作。

③或许这个时候会问,面向对象有什么好处?说到好处就不得不提它的三大特性:封装、继承和多态。为了说明这三大特性,我来讲个故事吧。
故事:小学的课本就说到女娲造人的故事,那么女娲首先想到的是所造的人长什么样,女娲为了方便就按照自己的样子捏了一个模板,后面它只需要按照这个模板来捏就行,在OOP中,这个模板称为类。女娲按照模板(类)捏了一个人,这个人就是具体的对象;那么我们知道人有很多器官构成,如眼睛、耳朵、鼻子、大脑、手和脚等基本特征,同样还有年龄、身高等特征,女娲为了区别每个人就会给每个对象不同的基本特征,另外,捏出的人会走路,会吃饭,会干活等行为方式,在OOP中,对象的基本特征称为属性,行为方式称为方法,所以这里看出类是由类的属性和类的方法构成;当人需要做什么的时候,都是通过方法来完成,而对于基本特征完全对外部环境隐藏,比如我吃饭我是用手吃,外部环境只知道我有这个行为,但不知道我是如何实现的,这样做有利的保护了我的属性,这种把属性隐藏,暴露方法的行为称为封装(此时可以思考一下面向过程语言)。女娲想着这一个人太无聊,就给它捏一个伴侣,暂且就叫它男人和女人吧,男人和女人都是根据这个模板来的,有着一样的基本特征和行为,只是某些特征(属性)和行为(方法)在实现上有差异,那么这种根据模板而捏造不同实现细节的类的行为称为多态,就是一个模板有男人和女人两种形态。女娲为了省事就让人类自己繁衍后代,就有了父子的关系,子类来自于父类,具有父类的基本特征和行为,子类也可以改变这些特征和行为,这种父子关系实现称为继承
故事到此结束,用大白话说明封装、继承和多态的含义。如果女娲按照面向过程的思想来造人,大概是造男人是一个方法,造女人是一个方法,造子类也是一个方法,方法内部分别包含基本特征,至于行为就更复杂了,所以OOP思想利用三种特性变得相对简单。

PS:如果想了解到更多关于Java、C、CPP等语言方面的特性只是,欢迎关注我们的公众号。

PS:内容丰富全面,共同进度!欢迎你的关注!

面试 | 什么是面向对象(OOP)?相关推荐

  1. 【转载】PHP面向对象(OOP)编程入门教程

    面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持. 如何使用OOP的思想来进行PHP的高级编程,对于提高 PHP编程能力和规划好Web开发构架都是非常有意义的.下面我们 ...

  2. PHP面向对象(OOP)编程入门教程

    面向对象编程(OOP)是我们编程的一项基本技能,PHP5对OOP提供了良好的支持.如何使用OOP的思想来进行PHP的高级编程,对于提高 PHP编程能力和规划好Web开发构架都是非常有意义的.下面我们就 ...

  3. PHP面向对象(OOP)----分页类

    PHP面向对象(OOP)----分页类 同验证码类,分页也是在个人博客,论坛等网站中不可缺少的方式,通过分页可以在一个界面展示固定条数的数据,而不至于将所有数据全部罗列到一起,实现分页的原理其实就是对 ...

  4. 面试官问面向对象特点_最好的面试官有什么共同点?

    面试官问面向对象特点 by Aline Lerner 通过艾琳·勒纳(Aline Lerner) 最好的面试官有什么共同点? 我们查看了成千上万的真实访谈以找出答案. (What do the bes ...

  5. 面向对象(OOP)基本概念

    面向对象(OOP)基本概念 {#toc_0} 面向对象编程 ------ Object Oriented Programming 简写 OOP 目标 {#toc_1} 了解 面向对象 基本概念 面向对 ...

  6. 面向对象(OOP)基本概念及基本语法

    面向对象(OOP)基本概念 面向对象编程 -- Object Oriented Programming 简写 OOP 目标 了解 面向对象 基本概念 面向对象基本概念 我们之前学习的编程方式就是 面向 ...

  7. Python使用---面向对象OOP(类和对象)--完善中

    来源于此 目录 1.面向对象(OOP)基本概念 1.1 过程和函数(科普) 1.2 面相过程 和 面相对象 基本概念 2 类和对象 2.1 类 2.2 对象 2.3 类和对象的关系 3 类的设计 4 ...

  8. java怎样用类模板创建对象_java入门(十四) | 面向对象(OOP)之类和对象

    上一期是变量,在java中变量总是无处不在,而变量其意就是可以改变的数,在一般情况下我们可以以变量类型,变量名,变量值来描述它 这一期是给面向对象(OOP)开了一个头,对他的概念,三大特征有了一个基础 ...

  9. java基础(三):java面向对象OOP

    java面向对象OOP 基本概念 面向过程与面向对象 面向过程:关注代码实现的细节.复用性 面向对象:先把每个过程的代码实现细节整合到对象中,只要找到对象就能拥有对象身上所有的功能. 面向对象基于面向 ...

  10. 第一阶段:Java基础总复习一一一和一一一面向对象OOP总复习

    一.Java基础 0.Maven的介绍: 官网:https://maven.apache.org/download.cgi (1)Maven是什么? Maven 是 Apache 开源组织奉献的一个开 ...

最新文章

  1. 用 .NET Memory Profiler 跟踪.net 应用内存使用情况--基本应用篇
  2. Android 学习笔记
  3. hdu 2191 多重背包入门
  4. SLAM-ch2-使用kdevelop创建helloWorld程序
  5. Linux Shell脚本专栏_一键查看服务器的利用率_04
  6. html5程序自动登录,Jtro的技术分享:网页调起unity的exe程序并自动登录
  7. 内核全新优化UI界面影视双端源码
  8. Xna游戏编辑器开发(WinForm内嵌Xna)
  9. 语音识别技术原理是什么 讯飞语音识别技术特点介绍【详解】
  10. Idea 设置根目录
  11. 价值连城 图灵奖得主Yann LeCun 杨立昆的采访 给AI从业者的建议
  12. 开关电源之充电器及其线缆的设计控制及测试验证要求
  13. 代码整洁之道 python_代码整洁之道
  14. ps使用脚本生成fnt
  15. 学习使用大数据数据采集工具(python)
  16. pngimg 可以商用吗_设计师你还在担心素材版权吗?大量免费可商用素材在这里...
  17. 形容词记忆(六):ive, ile, ary后缀常用词
  18. https://是什么?HTTPS和HTTP有什么不一样?如何申请SSL(HTTPS)证书?
  19. JPA 查询 未查询到时返回的list的size为0 但是引用并不为空
  20. 机器学习模型训练测试完整步骤

热门文章

  1. HDU-1556-Color the ball (线段树和差分数组两种解法)
  2. 模态对话框与 非模态对话框
  3. php allow_url_include,allow_url_include的应用和解释
  4. 中国传统时辰与现代小时对应关系
  5. python houdini_python for houdini——python在houdini中的基础应用01
  6. springboot配置中心
  7. Android 扩大View的点击范围
  8. 智慧灯杆如何助推城市“夜经济”活力
  9. android7.1 msm8953通过寄存器拉高gpio电平
  10. Golang — 命令行工具cobra