As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center获取指导。
7年前关闭。
我不在软件公司工作,但自学了C#,并经常使用它。现在,办公室中的另一位工程师(不是软件工程师)对学习编码表示出了浓厚的兴趣。我正在通过一些简单的控制台应用程序来帮助他,但是他在掌握所有OOP概念时遇到了一些麻烦。他是一名工程师,因此他在学校有过程序编程的经验,但是诸如对象,类和实例之类的概念确实给他带来了挑战。
我建议他得到Head First C# book,但是我也想知道是否有人知道任何解释OOP原理的优秀教程。他正在使用C#,但实际上可能与语言无关。同样,带有很多图片和图表的东西也是最有用的。
7年前关闭。
我不在软件公司工作,但自学了C#,并经常使用它。现在,办公室中的另一位工程师(不是软件工程师)对学习编码表示出了浓厚的兴趣。我正在通过一些简单的控制台应用程序来帮助他,但是他在掌握所有OOP概念时遇到了一些麻烦。他是一名工程师,因此他在学校有过程序编程的经验,但是诸如对象,类和实例之类的概念确实给他带来了挑战。
我建议他得到Head First C# book,但是我也想知道是否有人知道任何解释OOP原理的优秀教程。他正在使用C#,但实际上可能与语言无关。同样,带有很多图片和图表的东西也是最有用的。
最佳答案
我不知道他已经知道多少,但我记得也很难从程序转换为面向对象。我花了很长时间才弄清楚(在VB中)Label1.Caption = TextBox1.Text
,但是一旦我明白了,我就打开了一个崭新的世界,尽管花了一段时间才能真正创建类并考虑继承之类的问题。
我不知道这本书,但是如果这个人知道过程编程,并且他正努力解决与我上面提到的相同的概念,那么也许一些metafores可能会有所帮助。它几乎和图表一样好,甚至更好。 ;)
如果将对象与设备(例如手机)进行比较,那么每个不同的手机如何成为实例都是有意义的,而相同型号的所有手机都具有相同的类别。因此,按钮和/或其上的软件可以被视为方法。您有方法dial(phonenumber)
,并且有属性,如联系人列表。尽管值可以不同,但相同类别的每个电话都具有相同的属性。每个人的电话簿中都有不同的联系人。
这只是一个愚蠢的metafore,但是我敢肯定,您可以为其他OO概念构建一些其他元素。
关于oop - 什么是OOP的良好视觉教程? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4834033/
10-13 09:03