我知道这类问题已经是 问道 之前了,但是我仍然觉得这个答案对我来说太模棱两可了(而且,引申一下,对于一些/大多数初学者来说)难以理解。
我一直试图教会自己比过程化和基本面向对象编程更广泛的编程概念。我理解 OOP 的具体概念(您创建一个具有数据(成员)和函数(方法)的类,然后在运行时实例化该类以实际执行这类事情)。
我想我已经掌握了什么是类(类似于在编译时创建类似实例的设计蓝图)。但如果是这样的话,什么是物体呢?我还知道,在基于原型的语言中,这可能会把事情搞得更糟,但也许这就是为什么我需要在头脑中清楚地区分对象和实例。
除此之外,我还纠结于“对象”和“实例”的概念。我读过的很多资料(包括 SO 的答案)都说它们大体上是一样的,区别在于语义。另一些人说,这两者在概念上有真正的区别。
这里的专家们能否帮助一个初学者在面向对象程序设计的世界中拥有那个“啊哈”的时刻向前迈进呢?
注意: 这不是家庭作业,我不去学校-但是,我认为这将有助于人们正在寻找家庭作业的帮助。