如何学习 Object Oriented 面向对象编程

最近在 emacs-china 看到相关讨论,借机回顾了一下自己的学习过程,总结了一个『不敢说是最佳但应该还不错』的路径。

入门:《C++ 程序设计实例教程》,作者:刘振宇、杨勇虎

大学时学 C++ 的教材,没什么名气,但我觉得如果是用来上手,比各种 C++ 名著好用多了。

现在不知道能不能买到,但在网上应该可以找到电子版。过一遍书,跟着敲敲代码,就明白 Object Oriented (OO) 的核心概念了。

我刚到澳洲读书时,学校默认我是会 Java 的,虽然当时根本没碰过 Java,但有这本书的底子,很快水平就超过大部份同学了。

进阶:《Beginning Android Games》的前半部, 作者:Mario Zechner

教你在 Android 上写一个简单的游戏引擎,在这个过程中,可以体会到 OO 在实际应用中的美妙。只想学 OO 的话,可以略过后面讲 3D 编程的章节,过完前几章,在实际解决问题时怎么应用 OO,心里就有底了。

然后就是在实践中慢慢体悟。

原理:《SICP》第三章,作者:Harold Abelson, Gerald Jay Sussman, Julie Sussman

SICP 第三章会用 scheme (lisp 的一种)实现一些基本的 OO 特性。

除此之外,也可以在 https://babeljs.io/repl 中写 ES6 的代码,看看 JavaScript 中是怎么实现 class, extend, constructor 的。

看这些相对简单的语言如何实现 OO,能让理解更深刻。

Leave a Reply