用求两个数最大值的例子,来解释面向过程与面向对象。
面向过程
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
第一种
public class Maxnum{
public static void main(String[] args) {
int a = 10;
int b = 20;
int max;
if(a>b){
max=a;
}else{
max=b;
}
System.out.println(max);
}
}
第二种
public class Maxnum{
public static void main(String[] args) {
int maxnum = maxnum(10, 20);
System.out.println(maxnum);
}
public static int maxnum(int a,int b){
a=10;
b=20;
int max;
if(a>b){
max=a;
}else{
max=b;
}
return max;
}
}
面向对象
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
public class Maxnum {
public static void main(String[] args) {
int max = Math.max(10, 20);
System.out.println(max);
}
}
总结
- 面向过程是一件事“该怎么做“,面向对象是一件事“该让谁来做”
- 例如吃饭,面向过程强调的是“吃”,“饭”只是一个参数;面向对象强调的是“饭”,“吃”只是一个动作。
- 例如史书,面向过程相当于编年体的《春秋》, 面向对象相当于纪传体的《史记》
- 面向过程强调步骤与分析,面向对象强调的一种功能的调用。