2009-01-26 83 views

回答

0

纯对象语言是面向对象的最佳课程。

我可以建议的Java,Ruby或Smalltalk的

了解任何这些(从头开始,而不仅仅是重写C或Perl的),你知道OO。

2

所有边做边学。课程和书籍都很好,但底线是:编码是关于编写程序的;从那里开始。我个人认为另一件事非常重要:阅读其他人的代码!

0

我会用ruby,它比smalltalk更主流,并且比java有更丰富的语法。适合初学者

1

也许你会喜欢"Head First"的方法。

+0

我会再来。我已经通过一些Head First书籍的方式工作,他们很棒。 – MattK 2009-01-26 21:15:11

1

既然你问:)我Object Oriented Software Construction, 2nd Edition由伯特兰·迈耶,Prentice Hall出版社了解到,1997年

迈耶是由于在很短的发布,而其重点是学习一本书,从启动程序:Touch of Class。这对学生来说应该是一个很好的选择。

我注意到人们对学习材料的喜好差异很大。有些喜欢总结,教程,操作方法...我通过花时间学习完整的论文来学习复杂的主题。

0

真的很难自己学习。最好的机会是在工作场所旁边的其他人旁边学习,他们会帮助你完成任务并向你展示事情。

我可以推荐这本书。 http://squeakbyexample.org/它远非完美,但它是免费的,并配有特别的吱吱声版本,它经过优化,因此您可以快速找到代码。我想,这些例子对于初学者来说很不错。至少我很喜欢读它。

1

面向对象的机制(即语法和语义,术语,它是什么,它做什么)非常容易。他们“为什么”和“哪里”是困难的部分。我建议你只要在维基百科上学习快速和肮脏的机制(如果你还没有的话),然后拿起一本关于设计模式的书。头在先是一个很好的选择。我不认为你可以真正理解面向对象(或者真的有什么事),除非你知道它在哪里有用以及它要解决什么问题。

在此之后,下一步就是从全新的角度来看待您每天使用您喜欢的语言所使用的API。您应该开始了解为什么在某些情况下使用面向对象技术会使API比仅当自由/静态函数和普通的旧数据对象更有用。您可能还会看到OOP非常笨拙和过度使用的区域,而自由/静态功能和普通旧数据对象可能是更好的解决方案。

最后,了解OO的某些方面是如何在较低级别上实现是很有用的。理解诸如虚拟函数表之类的东西,以及如何在纯C中进行OOP,真的可以让您深入理解什么可以用它来实现,以及它所固有的折衷。

显然,尝试将您学习的内容整合到您编写的代码中。