谈谈面试题之什么是面向对象?谈谈你对面向对象的理解?
一、什么是面向对象?
对比面向过程,是两种不同的处理问题的角度。
面向过程更注重事情的每一个步骤及顺序,面向对象更注重事情有哪些参与者(对象),及各自需要做些什么
举例说明:洗衣机洗衣服
面向过程:会将任务拆解成一系列的步骤(函数),1、打开洗衣机---》2、放衣服---》3、放洗衣粉---》4、清洗---》5、烘干
面向对象:会拆分出人和洗衣机两个对象。
人:1、打开洗衣机---》2、放衣服---》3、放洗衣粉
洗衣机:1、清洗---》2、烘干
总结:从以上例子明显看出,面向过程比较直接高效,而面向对象更易于复用、扩展和维护。
二、面向对象三大特性:封装、继承、多态
封装:封装的意义,在于明确标识出允许外部使用的所有成员行数和数据项。也就是说内部细节对外部调用透明,外部调用无需修改或者关心内部实现。以下列举两个常见的封装案例
1.javabean的属性私有,提供getset对外访问,因为属性的赋值或者获取逻辑只能由javabean本身决定,而不能由外部胡乱修改。
private String name;
public void setName(String name) {this.name = "xiaowu" + name;
}
// 该name有自己的命名规则,明显不能由外部直接赋值。
2.orm(Mybatis)框架别人已经封装好,我们只需要引入mybatis依赖,复用对象,调用方法即可。而无须关系底层数据库链接如何建立的,Sql如何执行的等一系列操作。
继承:继承基类的方法,并做出自己的改变和扩展。子类共性的方法或者属性直接使用父类的,而不需要自己再定义,只需要扩展自己个性化的。
多态:基于对象所属类的不同,外部对同一个方法的调用,实际执行的逻辑不同。多态要满足三个条件,那就是继承、方法重写、父类引用指向子类对象要同事满足。多态无法调用子类特有的功能。
父类类型 变量名 = new 子类对象;
变量名.方法名();
谈谈面试题之什么是面向对象?谈谈你对面向对象的理解?相关推荐
- 什么是面向对象? 谈谈你对面向对象的理解
面试官提问:什么是面向对象? 谈谈你对面向对象的理解 面试题拆解: 这道面试题对于工作时间不是很长的Java程序员来说,出现频率是比较高的. 那么到底什么是面向对象呢?讲面向对象之前,需要先聊一下面向 ...
- 谈谈我对面向对象以及类与对象的理解
对于刚接触JAVA或者其他面向对象编程语言的朋友们来说,可能一开始都很难理解面向对象的概念以及类和对象的关系. 面向对象 首先,一言不和先百度,得到如下定义: 一切事物皆对象,通过面向对象的方式,将现 ...
- python登录面向对象_python基础之面向对象
面向对象编程 面向过程编程:根据业务逻辑从上到下写代码,主要突出在流程上 函数式编程:将某些功能封装在函数里,日后不用重复编写,仅调用函数即可 面向对象编程:对函数进行分类和封装,让开发"更 ...
- JS面向对象一:MVC的面向对象封装
JS面向对象一:MVC的面向对象封装 MDNjavascript面向对象 面向对象(Object-Oriented) 面向对象里面向的意思是以...为主,面向对象编程既以对象为主的编程. 面向对象的一 ...
- [.net 面向对象编程基础] (13) 面向对象三大特性——多态
[.net 面向对象编程基础] (13) 面向对象三大特性--多态 前面两节,我们了解了面向对象的的封装和继承特性,面向对象还有一大特性就是多态.比起前面的封装和继承,多态这个概念不是那么好理解.我们 ...
- python面向对象生动讲解_Python面向对象语法精讲
本专题的内容结构: 第一部分主要是:面向对象基础 第二部分主要是:面向对象进阶 第一部分的结构: unit1:面向对象编程模式: (1),面向对象编程思想 (2),面向对象的三个特征 (3),Pyth ...
- 笔记整理-信息系统开发基础-面向对象分析与设计-面向对象设计的基本任务
面向对象设计的基本任务,把面向对象分析模型转化为面向对象的设计模型,具体包括以下任务:设计人员必须完成以下任务:设计用例实现方案.设计技术支撑设施.设计用户界面.精化设计模型. 面向对象的分析模型主要 ...
- 什么是对象,为什么要面向对象,怎么才能面向对象?
一. 面向对象,这个对象到底是什么? 这个对象不是C#中的实例,C#中我们把一个类的实例也叫做对象,这种对象严格的说应该是面向对象的编程实现(OOP)中的对象,面向对象编程,也不是面 向类的实例编程. ...
- 什么是面向对象_什么是面向对象?新手程序员必掌握的技能
面向对象是指基于逻辑对象的概念构建的编程语言,系统或软件方法.它通过创建,利用和操纵可重用对象来执行特定任务,过程或目标. 什么是面向对象? 面向对象程序设计是种具有对象概念的程序编程典范,同时也是一 ...
- Java面向对象编程篇2——面向对象三大特点
Java面向对象编程篇2--面向对象三大特点 1.封装 1.1.封装的概念 通常情况下可以在测试类给成员变量赋值一些合法但不合理的数值,无 论是编译阶段还是运行阶段都不会报错或者给出提示,此时与现实生 ...
最新文章
- undefined reference to `libiconv_open 无法编译PHP
- oracle 取第三大的值,Oracle数据基础(三)
- 云炬随笔20171227
- 类中的静态成员函数访问非静态成员变量
- 优秀的SharePoint 2013开发工具有哪些(二)
- python-演练-通过描述符来控制另一个类的实例化参数
- JavaScript玩转机器学习:张量(Tensors) 和 操作(operations)
- c#获取部分DRAW
- 家中路由添加静态IP映射(一)
- 没想到!谷歌排名第一的编程语言,这样的学的话,更容易成为高手!
- mysql中 if语句的使用
- Edge浏览器支持IE内核 / 增加Edge兼容性
- 借用计算机简谱,电脑编辑打印简谱之路怎么走——“电脑简谱助手”操作系列谈之二...
- 学习weka(1):weka软件安装使用教程
- Oracle触发器原理、创建、修改、删除
- 鹏博士总经理陆榴遭免职 董事称事发突然
- 阿里安全潘多拉实验室首先完美越狱苹果iOS 11.2
- 雄关漫道真如铁,而今迈步从头越 | 挥别2022,再战2023!
- ESP8266开发之旅 应用篇④ WiFi广告机
- linux学习---brk(), sbrk() 用法
热门文章
- 如何在Linux上使用strings命令
- GO vs PHP ,谁更适合创业公司的中台搭建?(文末赠书)
- 数据库oceanbase出现 field list ambiguously defined情况
- 图片翻转代码linux,Android实现图片顺时逆时旋转及拖拽显示效果
- css3背景渐变与边框阴影
- Visual Studio2010保姆式安装教程(VS2010 旗舰版),以及如何运行第一个C语言程序,超详细
- JavaScript 常用运算符
- Docker搭建3主3从Redis Cluster集群
- 定时关闭和启动IIS和Web网站
- Ubuntu20.04安装yum和yum-utils方法(原创)