A.面向对象编程
面向对象编程(Object Oriented Programming)是一种软件开发方法,它以创建和使用对象为中心。一个对象(Object)就是一个软件实体,它将数据和程序在一个单元中组合起来,从而使软件或游戏运行变成了多个对象间的交互,这样就会使软件或游戏很容易维护、理解和重复使用。
B.何为面向对象编程
在面向对象编程出现之前,大家一直使用面向对象过程的方法编程。面向过程编程就是分析出解决问题所需要的步骤,即先干什么、再干什么、后干什么,然后用函数把这些步骤一步一步实现。
例如,编写五子棋游戏的程序,使用面向过程编程分为这样几个步骤:开始游戏;黑子先走;绘制画图;判断输赢;轮到白子走;绘制画面;判断输赢;返回第2步;输出最后结果。把上面每个步骤用不同的函数来实现,问题就解决了。
而面向对象编程是把计算机程序视为一组对象的集合,每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递。
例如,同样编写五子棋游戏,使用面向对象编程方法分为这样几个步骤:编写玩家系统(负责黑白棋子走棋);棋盘系统(负责绘制画面);规则系统(负责判定规范、输赢等)。第一类对象(玩家系统)负责接收用户输入,并告知第二类对象(棋盘系统)棋子布局的变化;棋盘系统接收到了棋子的变化后,负责的屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。
通过对比可以明显地看出,面向对象是以功能来划分问题,而不是步骤。这样设计的好处是维护方便、使用灵活、可重复使用、可扩展。比如想要加入悔棋的功能,如果要改动面向过程的设计程序,那么从输入到判断到显示这一串的步骤都要改动,甚至步骤之间的顺序都要进行大规模调整。但如果是面向对象设计的程序,只用改动棋盘系统的程序就行了,其他系统不用修改,这样的局部改动工作量会大大减小。