面向对象和面向过程的区别有哪些

如题所述

掌握面向对象的困难之处在于思路的转换。我们通常习惯于考虑解决问题的方法,而不是考虑将问题抽象成对象再去解决它。
我还是从两个简单的例子来说一下吧,希望对你转换思路有帮助:
   第一个简单的例子:
(编写一个驾驶汽车的方法)
   面向过程的程序设计:
编写一个方法,void drivecar();
   面向对象的程序设计:
将一辆汽车看成一个对象,将所有汽车对象的共性抽取出来,设计一个类Car,类中有一个方法void drive(),用Car这个类实例化一个具体的对象car,调用:car.drive()。
第二个简单的例子:问题:求一个长方形的周长和面积。
以面向过程的程序设计方式思考:
1、确定长方形周长和面积的算法。
2、编写两个方法(函数)分别计算长方形的周长和面积。
3、求周长的方法(函数)和求面积的方法(函数)需要两个参数,分别是长方形的长和宽。
面向过程的程序设计代码:
class Rectangle
{
static int perimeter(int length,int width)
{
return 2*(length+width);
}
static int area(int length,int width)
{
return length*width;
}
public static void main(String[] args)
{
System.out.println("perimeter = “ + Rectangle.perimeter(5,4));
System.out.println("area = “ + Rectangle.area(5,4));
}
}
面向对象的程序设计:
问题:求一个长方形的周长和面积。
以面向对象的程序设计方式思考:
1、一个长方形可以看成一个长方形对象。
2、一个长方形对象有两个状态(长和宽)和两个行为(求周长和求面积)。
3、将所有长方形的共性抽取出来,设计一个长方形类。
4、通过长方形对象的行为,就可以求出某个具体的长方形对象的周长和面积。
(程序你可以自己试着编一下哈!)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-05-15
相似回答