开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 8 天,点击查看活动详情
面向过程和面向对象是两种截然不同的编程思想,像C语言是完全面向过程的编程思想,Java则是完全面向对象的编程思想,那么这两种编程思想有什么区别呢?
1. 面向过程
面向过程是一种自顶向下的编程模式,以过程为中心,将需要执行的任务拆分成多个步骤,将步骤用一个个方法包装起来,依次执行步骤直到任务完成。
以启动车辆为例,使用面向过程的思想编程,代码如下:
applyBrakes(); // 踩住刹车
turnKey(); // 拧动钥匙
carStart(); // 车辆启动
releaseBrakes(); // 松开刹车
carMoveForward(); // 车辆前进
将任务拆分成步骤,步骤转化成方法,以方法为最小单位,依次执行完成任务。
2. 面向对象
面向对象是将事物高度抽象化的编程模式,以对象为中心,将任务才分出来的步骤都交给各个对象实现,每个对象之间互不相干,只需要完成自己的工作就可以了。
就以启动汽车为例,该任务涉及到了人和车辆两个对象,人只要负责踩刹车、拧钥匙、松刹车就可以了,汽车则负责启动和前进,两者互不相干,每个对象只需要管好自己的事,无需管其他对象在干嘛,代码如下:
public static void main(String[] args) {
Person person = new Person();
Car car = new Car();
person.applyBrakes();
person.turnKey();
car.carStart();
person.releaseBrakes();
car.carMoveForward();
}
public static class Person {
private void applyBrakes() { }
private void turnKey() { }
private void releaseBrakes() { }
}
public static class Car {
private void carStart() { }
private void carMoveForward() { }
}
定义人和车辆两个对象并实例化,每个对象自己完成自己负责的事情,Person实现自己的方法,Car也是,两者互不相干。
3. 异同
面向过程与面向对象都是对软件分析、设计和开发的一种思想。其中面向对象可以说是包含了面向过程,是在面向过程的基础上抽象出来的,相对于面向过程来说更复杂,模块化程度更高。从开发角度看,面向对象更容易后期的扩展和维护。