掌握面向对象的困难之处在于思路的转换。我们通常习惯于考虑解决问题的方法,而不是考虑将问题抽象成对象再去解决它。
我还是从两个简单的例子来说一下吧,希望对你转换思路有帮助:
第一个简单的例子:
(编写一个驾驶汽车的方法)
面向过程的程序设计:
编写一个方法,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、通过长方形对象的行为,就可以求出某个具体的长方形对象的周长和面积。
(程序你可以自己试着编一下哈!)
C语言是面向过程的编程,它的最重要特点是函数,通过主函数来调用一个个子函数。程序运行的顺序都是程序员决定好了的。它是我学的第一种程序语言。
VB是面向对象的编程,类是它的主要特点,程序执行过程中,先由主函数进入,定义一些类,根据需要,执行类的成员函数,过程的概念被淡化了(实际上过程还是有的,就是主函数的那些语句),类就是对象,所以我们称之为面向对象程序设计。