Rob*_*ean 27 language-agnostic oop object
我想到这一点已经好几年了,但是我很快就会训练一些真正的青少年,需要向一个不知道它是什么的人解释一个对象是什么.
根据您在现实世界中使用的内容,我应该重点解释的对象的关键点是什么.例如:
Joo*_*kka 121
当我学习OOP时,我对所有这些"汽车/动物/无论"的比喻感到困惑.他们根本没有帮助我.然后有人说类/对象只是一组变量(类成员)和处理它们的函数(方法) - 这实际上是正确的.就这么简单!
使用所有这些流行的比喻只会误导人们,恕我直言.汽车与OOP并没有太多共同之处.当你已经知道它们的意思时,很容易理解这些隐喻,但是试着从它们开始......不.
Chu*_*uck 43
我喜欢Alan Kay使用的原始隐喻,他创造了"面向对象编程":对象就像身体中的细胞.它们每个都有自己的行为编程,并通过将消息传递给彼此进行通信,然后它们再次响应自己内部定义的行为.没有一个细胞知道另一个细胞是什么 - 他们只知道如何处理自己的任务并相互沟通.
我会从Access Levels和Encapsulation开始,然后从那里搬出去.封装是一个相当简单的概念,有一些明显的好处.从那里你可以很容易地谈论抽象,继承和多态.
作为一名本科生,我发现Encapsulation在一个相当抽象的领域是一个很好的锚定概念.