什么是好的OOP可视化教程?

什么是好的OOP可视化教程?,oop,Oop,我不在软件公司工作,但我自学了C#,并且一直相当经常地使用它。现在办公室里的另一位工程师(不是软件工程师)表示有兴趣像我一样学习编码。我正在帮助他完成一些简单的控制台应用程序,但他在掌握所有OOP概念方面遇到了一些困难。他是一名工程师,所以他在学校有过程序编程的经验,但是像对象、类和实例这样的概念对他来说确实是一个挑战 我建议他去拿,但我也在想,是否有人知道有什么好的在线教程可以解释OOP原理。他在用C#,但它确实可能是语言不可知论者。另外,一些有很多图片和图表的东西将是最有帮助的。我不知道他已

我不在软件公司工作,但我自学了C#,并且一直相当经常地使用它。现在办公室里的另一位工程师(不是软件工程师)表示有兴趣像我一样学习编码。我正在帮助他完成一些简单的控制台应用程序,但他在掌握所有OOP概念方面遇到了一些困难。他是一名工程师,所以他在学校有过程序编程的经验,但是像对象、类和实例这样的概念对他来说确实是一个挑战


我建议他去拿,但我也在想,是否有人知道有什么好的在线教程可以解释OOP原理。他在用C#,但它确实可能是语言不可知论者。另外,一些有很多图片和图表的东西将是最有帮助的。

我不知道他已经知道多少,但我记得从过程转换到OO也很困难。我花了很长时间才弄明白(在VB中是)
Label1.Caption=TextBox1.Text
,但一旦我明白了这一点,一个全新的世界在我面前打开了,尽管我花了一段时间才真正开始创建类并思考继承之类的东西

我不知道一本书,但是如果这个家伙知道过程编程,并且他正在与我上面提到的相同的概念作斗争,也许一些metafores会有所帮助。它几乎和图表一样好,甚至更好

如果你将一个对象与一个设备(比如一部手机)进行比较,就可以理解为什么每个不同的手机都是一个实例,而同一型号的所有手机都具有相同的类。因此,按钮和/或其上的软件可视为方法。你有一个方法
拨号(电话号码)
,还有属性,比如联系人列表。同一类别的每部手机都有相同的属性,尽管值可能不同。每个人的电话簿上都有不同的联系人


这只是一个愚蠢的metafore,但我相信你可以为其他OO概念编造一些其他的。

将一个值设置为另一个值很难是面向对象的编程。事实上,VB示例还不错。我正在帮助的那个家伙总是被variableName.SomeProperty.AnotherMethod().PropertyName语法弄糊涂,这对我来说只是第二天性。@Cody Gray。我知道。但这只是一个开始。当你需要解释一个物体是什么以及如何使用它时,这是一个很好的开始。在你开始建造房子之前住在房子里是很好的,所以首先把房子从山洞里拉出来,放到房子里,当他们感到舒适时,教他们如何砌砖。:)可能的重复项:,