一起学JAVA之【基础篇】什么是面向对象
上一篇我们讲了Java开发中很重要得Jdk和Jre还有Jvm之间的关系,这次我们来说说面向对象,都说Java 是面向对象语言,那么什么是面向对象呢?
### 面向过程
面向过程是最常拿来与面向对象做比较一种编程思想,我们最开始接触的c语言就是一种面向过程编程,面向过程主要是专注于一件事情的流程。举个例子:我们拿学生起床去学校这件事来分析一下,下面是一个简单的流程图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3eGCMLJc-1632133675188)(C:\Users\13782\AppData\Roaming\Typora\typora-user-images\image-20210920164622159.png)]
图一
从图一的流程图可以看出学生起床去学校这件事有三个步骤分别是起床、洗漱、去学校,那么我们面向过程该怎么实现呢,我们先用伪代码简单写一下:
class GoToSchool{
void main(){
getUp();
wash();
toSchool();
}
void getUp(){
//起床
}
void wash(){
//洗漱
}
void toSchool(){
//去学校
}
}
通过上面的伪代码我们可以看出来,面向过程就是把我们要做的事情的每个步骤实现,再用main函数来调用来达到我们最终的目的。
所以我们总结一下:面向过程就是是一种以事件为中心的编程思想,编程的时候把解决问题的步骤分析出来,然后用函数把这些步骤实现,在一步一步的具体步骤中再按顺序调用函数
面向对象
下面我们来看我们Java的编程思想——面向对象,同样的我们还是实现学生起床去上学这个事情,但是不同于上面的是我们这次用面向对象的编程思想来实现,直接上代码:
class Student(){
void getUp(){
//起床
}
void wash(){
//洗漱
}
void toSchool(){
//去学校
}
void main(){
Student student = new Student();
student.getUp();
student.wash();
student.toSchool();
}
}
我们先对比一下有什么不同,首先是类名不同,其次面向对象中有一个new的这样一个操作,在面向对象中我们一般把统一类事物用类来表示,这就是抽象。在这里我们把学生抽象成了一个类,起床、洗漱、去学校只是类里面的一个方法。当我们要实现学生起床去学校这个事件时,我们直接用类生成一个对象然后再调用对象中的方法就行了。
总结一下:面向对象就是一种以对象为中心的编程思想,把要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个对象在整个解决问题的步骤中的属性和行为。
优缺点对比
#### 面向流程:
优点:
1、按流程步骤一步一步向下执行,整个代码比较清晰
2、性能比面向对象好,适用于底层开发
缺点:
1、代码不易维护,没有面向对象程序扩展性好
#### 面向对象
优点:
1、优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护
缺点:
1、性能相较于面向流程性能低
、优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护
缺点:
1、性能相较于面向流程性能低