面向过程 和 面向对象 的区别

最近在学习Java,讲到 “Class 类” 这个概念时,因为之前研究过wg方面,所以对 “类” 的理解还是很轻松的。

1、什么是 “类” ?

毕竟是个抽象的概念,那就通俗的举个例子。

现在很火的吃鸡游戏,我对其也研究过一段时间。(虚幻引擎,算是被玩烂了已经)

具体游戏内容就不详细说了,没玩过的的去看个视频或直播啥的就够了。

在游戏内,人、物品、载具……这些,称之为实体,也就是模型。

光有模型,也许连一个最简单的单机游戏都做不出来,因为还需要各种各样的数据。

何为数据?

人:坐标、血量、性别、玩家名字、性别、朝向……

物品:坐标、类型(区分武器、药品、防具、子弹……)、朝向、数量(比如子弹,你在地面看到的只是1个实体,但是捡起来却增加30发子弹)……

载具:坐标、类型(轿车、吉普车、摩托车……)、朝向、油量、血量、可乘坐人数……

这些,是数据。

但是,在这么大一个游戏地图世界里,一局少说也有几千个实体,每个实体都有各自的数据,难道要一个变量一个变量的去添加吗?

显然不能。

于是乎,我们就把这些数据归为一个 “类” 。

比如我要创建一个实体,首先需要让其实体对应一个类, “人” 对应 “人类” 、 “车” 对应 “车类” 、“物品” 对应 “物品类” ,再对其类数据进行初始化,然后循环创建几千次,就模拟了游戏里的随机刷新物资。

这样,游戏中的一部分功能就实现了。

2、“类” 和 “结构体” 的区别是什么?该如何根据需求选择使用?

问老师后,得到的回答是: “类” 是对 “对象” 的应用,而 “结构体” 主要用于储存数据。

相信这句话已经很好解释这个问题了。

3、何为 “面向过程” 和 “面向对象” ?

毕竟是抽象概念,自己也解释不清,百度了一下还是用原文和原文中的例子来阐述吧。

“面向过程” 和 “面向对象” 是2种不同的编程思路

面向过程:分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用。

面向对象:把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

比如你需要做一个下棋软件,两种思路分别如下:

面向过程:画出棋盘 -> 用户走出黑棋 -> 画出黑棋坐标 -> 规则运算 -> 判断胜负  -> 用户走出白棋 -> 画出白棋坐标 -> 规则运算 -> 判断胜负

面向对象:定义 规则类、棋盘类、棋类、绘制类 -> 用户走出黑棋 -> 新建一个棋类变量 -> 初始化属性 颜色黑 坐标x1y1 -> 规则类方法(函数)判断 是否合法 和 是否得出胜负 -> 绘制类画出棋子 -> 用户走出白棋 -> 新建一个棋类变量 -> 初始化属性 颜色白 坐标x2y2 -> 规则类方法判断 是否合法 和 是否得出胜负 -> 绘制类画出棋子

根据例子可以看出区别:

面向过程:绘制棋局分散在了多个步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。

面向对象:以功能来划分问题,而不是步骤。设计绘图只可能在棋盘对象中出现,从而保证了绘图的统一。

(引用自:https://blog.csdn.net/jerry11112/article/details/79027834

猜你喜欢

转载自blog.csdn.net/u012088909/article/details/82470479