当我决定自学编程时,我从 Java 开始。虽然我熟悉编写简单的过程软件(主要是用 PHP),但我最近开始意识到,对于更复杂的操作,我依赖于对象。
我的第一个 Java 游戏通过实例化对象以随机速度在随机位置生成对手。我对在 C 中以程序方式实现这一概念感到困惑(我对此知之甚少),但我只能想到为每个对手中的变量创建不同的数组并将数组索引用作伪对象引用“变量” '。
int size[50]; // opponent size
for (i = 0; i < 100; i++) {
size[i] = random_number();
}
我的面向对象思维是否忽略了一个简单的解决方案?或者某些问题是否真的适用于面向对象的概念,以至于您必须编造假对象(或至少使用类似的模型)?我一直在 C 代码中看到结构,我知道它们在概念上类似于类,但我只知道这些。所以我想知道这样的事情是否可以完全非面向对象的心态。实例化没有真正的替代品,是吗?这一切都只是内存分配,所以在我看来,某些 C 程序别无选择,只能使用某种我认为是对象的形式来编写。
请告诉我我忽略了一些东西,否则我不能尊重那些谴责面向对象范式的 C 纯粹主义者。(我绝不是一个 OO 疯子;不过,我的大脑已经非常习惯这个想法,而且很难通过不提供您习惯的不同视角来看待事物。)
谢谢!