我知道之前已经提出 过这样的问题,但我仍然觉得答案对我来说太模糊了(而且,有些/大多数初学者).
我一直在努力教自己更广泛的编程概念,而不是程序和基本的OOP.我理解OOP的具体概念(你创建一个具有数据(成员)和函数(方法)的类,然后在运行时实例化该类以实际执行某些事情,那种事情).
我认为我可以处理类的内容(在编译时以类似的方式创建实例的设计蓝图).但如果是这样的话,对象是什么?我也知道在基于原型的语言中,这可能会使事情变得更糟,但也许这就是为什么在我的脑海中需要明确区分对象和实例.
除此之外,我还在努力解决"对象"和"实例"的概念.我读过的很多资源(包括SO的答案)都说它们大致相同,而且区别在于语义.其他人说两者之间存在真正的概念差异.
SO的专家能帮助初学者在OOP世界中有一个"啊哈"的时刻吗?
再次感谢.
注意:这不是家庭作业,我不上学 - 但是,我认为这有助于那些正在寻找家庭作业帮助的人.
我的邻居正在参加"Java简介",并请我帮助解释一些第一天的概念.我意识到,因为我每天都这样做,所以我没有初学者的想法,而且从头开始很难将这些东西联系起来.
对我来说,实际上并非无足轻重的解释是"什么是一个班级?"
我到目前为止最好:
甲变量持有某种数据; 一个变量可能是名字,另一个变量可能是你的体重(磅).
一个方法是一个函数,它的东西,可以用这些变量做的东西.一种方法可能会在屏幕上显示您的名字,或者告诉您,为了获得良好的BMI比率,您应该减掉多少体重.
一个对象保持变量和方法; 一个对象可能代表你,第二个对象可能代表我.
一类是一种描述方法和变量,将在每个对象的蓝图或模板.对象是实例化的(一个实例)类; 一个对象就是某种东西,而这个类只是制作这个东西的计划.
继续这个例子,我们有一个Person对象,它被实例化以保存Alice的数据,另一个Person对象被实例化以保存Bob的数据,另一个用于Carol,依此类推.
如何调整此示例以使其更有意义,和/或什么是更好的方法?"实例化"这个词在这一点上感觉太重了.
(我认为这是一个有用的问题,但显然是主观的;标记为社区维基.)