面向对象到底是个啥?

万物皆对象。

从我们接触Java这门语言开始,就有人告诉我们这是一个面向对象的语言。见得最多的就是new一个对象。那么什么是面向对象?难道是面对女(男)朋友编程?我们来一起看看:

对Java来说,万物皆对象。把现实世界中的对象抽象出来,体现在编程世界中,一个对象代表了某个具体的操作。一个个对象最初组成了完成的程序。

尽管Java是基于C++的,但是相比之下,Java是一种更”纯粹“的面向对象语言。Java语言假设我们只进行面向对象的程序设计,所以在学习Java的时候,我们需要将思想从面向过程尽快转移到面向对象中来。

我们来举个栗子:
有一天你想吃回锅肉了,咋办?有两个选择:
1、自己买食材,五花肉、洋葱、豆豉等等,然后切肉,切菜,开炒,装盘。
2、去饭店,张嘴:老板,来份回锅肉!

看出来区别了吗?1是面向过程,2就是面向对象

面向对象有什么优势呢?首先你不需要知道回锅肉是怎么做的,直接吃就好,降低了耦合性。如果你突然不想吃回锅肉了,想吃蒜苔肉丝,对于方案1来说那太不容易了,还要重新买菜。对于方案2来说,那太容易了,直接让老板换就行了,因为这些食材老板已经提前准备好了,需要啥用啥就可以了。

面向过程是具体化,流程化的,解决一个问题,必须一步一步来分析、实现。

面向对象是模型化的,你只需要抽象出一个类,这是一个封闭的盒子,需要什么直接使用就行,不必去一步一步实现。面向对象的底层还是面向过程,把面向过程抽象成类,然后封装。

一、对象的概念

Java是面向对象的编程语言,对象就是面向对象程序设计的核心。**所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中的每一个实体都是一个对象。**对象有以下特点:

  • 对象具有属性和行为
  • 对象都是某个类的实例
  • 一切皆为对象,真实世界中的所有事物都可以视为对象

例如,在真实世界的学校里,会有老师和学生等实体,学生有学号、姓名、成绩等属性,还有学习、提问、写作业等行为。学生只是抽象的描述,是对这个类别的总称,这个类别我们叫做”类“。而在学校里是学生个体,张三、李四等,这些具体的个体我们称为”对象“,”对象“也成为”实例“。

二、面向对象的三大特性

面向对象开发模式更加有利于人们拓展思维,这种开发模式之所以使程序设计更加完善和强大,主要是因为面向对象具有封装、继承和多态三个核心特性。

1、封装

封装是将代码和其他数据成员绑定在一起的机制,这种机制保证了程序和数据不受外部干扰。封装的目的在于保护信息。

2、继承

如同生活中的子女继承父母拥有的财产,程序中的继承性是指子类拥有父类的所有属性和方法,这是类之间的一种关系,Java只支持单继承,不过可以通过其他方法实现多继承。

3、多态

即“一个接口,多个方法”。多态是基于继承而来的,多态体现在父类中定义的属性和方法被子类继承后,可以具有不同的的表现方式,多态多态,多么变态!

面向对象到底是个啥?_第1张图片

你可能感兴趣的:(Java)