2009-01-26 86 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,真的可以讓您深入理解什麼可以用它來實現,以及它所固有的折衷。

顯然,嘗試將您學習的內容整合到您編寫的代碼中。