前言
都说人生苦短, 只学 Python. 不可否认, Python 近来确实势头强劲, 但是看一下最新的语言排行榜, Java 先生仍然稳坐头把交椅. Java 是一门使用频率非常高的编程语言, 约 90%的财富 500 强公司都在大量使用 Java.
从技术角度来看, Java 几乎涵盖了软件开发的各个层面: 后端开发, 大数据开发, 嵌入式系统开发, 移动应用开等. 如果你选择了学习 Java, 那么恭喜你, 你将获得极其广阔的发展空间.
作为一个新手, 应该如何学习 Java 呢? 有的同学求学心切, 学了点皮毛就迫不及待要去开发大型网站或移动应用, 殊不知 "不积跬步无以至千里", 基础没有打牢, 只会在后续学习或工作中屡屡受挫. 那究竟什么才是打开 Java 的正确方式呢?
众所周知, Java 是一门纯粹的面向对象语言, 它既不像 Python 将结构化编程与面向对象混为一团, 又彻底抛弃了 C++ 中晦涩的指针操作. 在 Java 中一切皆为对象, Java 以 "类" 作为程序的基本单元, 并通过 "对象" 间的交互来使程序运转, 同时借助封装, 继承及多态机制来构建复杂的软件结构. 鉴于此, 学习 Java 最重要的不在于熟悉语法, 而在于面向对象思想的理解和运用, 这也是容易被初学者忽略的问题.
辣么, 又该如何学习面向对象呢? 假如将 Java 编程比作一门武功, 语法就好比招式, 而面向对象则如同内功心法. 招式易学, 心法难通, 若要知晓面向对象的诸多妙处, 死记硬背是毫无用处的, 唯有通过反复的实践和练习去领悟.
对于小白来说, 通常的作做法就是照着教材上的例子敲一敲, 或者做做章节练习题. 这种方式对学习语法是有效的, 然而, 例子或习题都是孤立的问题片段, 彼此没有联系, 不能形成一定规模的复杂度, 无法让人从整体的系统的角度去考虑问题的解决方法, 从而妨碍了面向对象思想的深刻理解和灵活运用. 因为面向对象就是为了解决复杂系统问题而诞生的.
为了学习面向对象的精髓, 我们需要借助切实有效的途径和灵活方便的工具.
看看 Oracle 对于 Java 学习工具的建议: 首先是 Alice, 然后是 Greenfoot, 最后是 Eclipse. 今天我们重点关注一下这个 Greenfoot.
Greenfoot 究竟能够做些什么呢? 答案是: Greenfoot 能使用 Java 语言来编写游戏 (划重点). 有同学立马表示不屑: 我又不想搞游戏开发, 用这个做啥子. 别急, 其实 Greenfoot 主要不是用来开发游戏的, 而是通过编写游戏来学习 Java 面向对象编程.
喜欢读书的童鞋可能注意到, 国外许多编程语言的教材都喜欢将游戏作为教学案例, 没错, 编写游戏是学习编程的绝佳途径. 编程的过程是枯燥的, 编写游戏会让程序显得生动有趣, 增加学习乐趣. 更重要的是, 每个游戏都是一个完整的项目, 编写游戏能够让人从整体上系统思考游戏项目的解决方法, 从而让初学者在没有条件接触实际项目开发的情况下也能积累一些项目经验.
同时, 游戏编程对于面向对象思维的培养非常有利. 游戏中的所有角色和物品都能用 "类" 来建模, 并通过创建 "对象" 及其交互, 来使整个游戏世界正常运转. 于是乎, 在编写游戏的过程中, 不知不觉就加强了对面向对象的理解和运用, 此谓 "只能意会不可言传" 矣.
如果你感觉到学 Java 有些吃力, 但是对 Java 语言有非常喜爱的话, 可以参考下图学习也可以加 Java 资料共享群: 967051845, 进群免费领取 Java 基础学习资料!
来源: http://www.jianshu.com/p/2f6a130b98ed