面向对象是把一组数据结构和处理他们的方法组成对象,把具有相同行为的对象归纳成类,通过封装隐藏类的内部细节,通过继承使类得到泛化,通过多态实现基于对象类型的动态分派。
之前在面试Java的时候遇到关于面向对象的问题,好久没复习,概念都忘了,当时没能回答完整。今天整理了一下,彻底搞懂了什么叫面向对象,下面用通俗的话详细讲解面向对象的相关概念。
注意这里提到的几个关键词:数据、方法、对象、类、封装、继承、多态。
1.数据
首先说数据,什么是数据?数据是信息的表现形式和载体,它英文名称叫Data。
在百度百科上的基础解析:数据是事实或观察的结果,是对客观事物的逻辑归纳,用于表示客观事物的未经加工的原始素材。
举个栗子。我们日常中用到的数字0,1,2,3,4,5、表示天气的摄氏度,
学生的档案记录、
货物运输情况等等
这些都是数据,数据经过加工后就变成了信息。在计算机中,数据以二进制信息单元0,1来表示。
2.方法
方法的基本解析是为达到某种目的而采取的途径,步骤和手段。
在我们的软件编程语言中,如果将函数定义为类定义的一部分或者将它与某个对象绑定,则该函数称为方法。
3.对象
这个是我们程序员梦寐以求的对象是吧。
对象在百度百科中的基本解析是描写或写实的特定人或物。在计算机语言中表现为客观世界中存在的人、事、物体等实体在计算机逻辑中的映射。
4.类
什么是类?类就是分类,在面向对象中类是实现信息封装的基础。
类是一种引用数据类型,也称类类型。每个类包含数据说明和一组操作数据的方法,类的实例就是对象。
举个栗子:
人类就是一个基本的类类型,而我们就是这个类类型的一个具体的对象。
人类包含有姓名、性别、年龄等等这些数据说明,同时也有走路、吃饭、工作这些传递能量信息的方法。
5.封装
封装是对一类事物进行抽象描述。封装是个动词,通过将姓名、性别、年龄等这些属性抽象到人类这个类类型的过程就叫封装。这个时候我们一说到人类就能联想到这个人叫什么名字,是男是女,多大年龄等。同时封也装隐藏了一些特殊的属性,比方说:这个人身上有多少钱,我们是不知道的。
6.继承
继承简单理解就是儿子继承爸爸,继承可以使得子类具有父类公开的属性和方法,同时拓展了自身的属性和方法。
举个栗子,父子关系,我继承了我父亲的所有公开属性,都具有姓名、年龄、性别这些属性,但是我扩展了写代码这样的一个方法。这个写代码的方法是我独有的,我父亲不具备写代码的功能,这就是承。简单说继承就是在原有的基础上进行了扩展。
7.多态
说到多态就要说一下“接口”这个概念,接口是什么?
接口是一种特殊的类,在这个类中指定必须做什么,但不用规定它如何去做。而多态就是以多种方式告诉这个接口类该如何去做。
举个栗子,我定义一个接口类,这个类中只有一个吃饭的方法,那么我们明白在这个类中就指定了需要做吃饭这件事,而吃什么,怎么吃,在哪里吃,这就可以通过多态来实现。这个时候我们就可以再定义两个类去实现这个这个接口,一个类实现这个吃饭的方法在中餐馆用筷子吃鱼;另一个类实现这个接口就是在西餐厅用刀叉吃牛排。
总结
面向对象是作为Java编程入门的最基础知识,我们在实际开发中可能很多基础概念都忘记了,时不时的还是要把基础捡起来,不断加深巩固。
关注我,及时收到更多关于Java、编程相关知识的整理。