简单理解面向对象思想和面向过程思想
一、面向对象/过程思想的概述:
面向过程:当需要实现一个功能的时候,每一个具体的步骤都需要亲力亲为,详细处理每一个细节
面向对象:当需要实现一个功能的时候,不关心具体的步骤,而是找一个已经具有该功能的人,来帮我做事儿。强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去操作实现。
二、代码实例
面向对象:Object Oriented
面向过程:Procedure Oriented
为了熟悉这两者的区别,我们现在实现打印指定格式数组的功能,格式:[数组的内容]
e.g:
int [] array=new int []{10,20,30,40,50}
打印输出:[10,20,30,40,50]
package com.tan.day2.demo2;
import java.util.Arrays;
/*
面向对象:Object Oriented
面向过程:Procedure Oriented
*/
public class OO_PO {
//为了熟悉这两者的区别,我们现在实现打印指定格式数组的功能
//格式:[数组的内容] e.g: int [] array=new int []{10,20,30,40,50} ---->[10,20,30,40,50]
public static void main(String[] args) {
int [] array=new int []{10,20,30,40,50};
System.out.println("这是面向过程的写法:");
System.out.print("[");
for (int i = 0; i < array.length; i++) {
if(i==(array.length-1)){
System.out.println(array[i]+"]");
}else{
System.out.print(array[i]+", ");
}
}
System.out.println("这是面向对象的写法:");
System.out.println(Arrays.toString(array));
}
}
可以发现面向过程可能十几行的代码,面向对象中却只需要一行就解决了
知乎大佬:涛吴,有个很形象的比喻:面向对象语言:java、python等就如同是自动挡的汽车,面向过程语言:c语言就是手动挡的汽车,c语言是底层语言。
三、生活实例
洗衣服这个行为,在面向过程中的步骤为:
1.整理出来你要洗的衣服
2.找个容器
3.放洗衣液
4.加水
5.放衣服进去泡一泡,揉一揉
6.清水反复冲洗
7.拧干
8.晾晒
洗衣服这个行为,在面向方法中的步骤为:
1.整理出来你要洗的衣服
2.打开全自动洗衣机
3.把衣服扔进去
4.按按钮
5.叮咚一响,洗衣机洗完了拿出来晾晒
四、感受
面向过程是强调步骤的,面向对象强调能实现我要实现的功能的对象,这个例子中的对象就是洗衣机。面向对象可以把复杂的东西简单化。
面向对象语言:java、python等就如同是自动挡的汽车,我们只管开就行,不管它底层是怎么进行的,也不要记多少档对应的速度是多少,也不需要去管我车现在速度多少得换什么档。面向过程语言:c语言就是手动挡的汽车。
五、面向对象的三大基本特征
1.继承
2.封装
3.多态