《Thinking in Java》是 Bruce Eckel 的经典Java教程,它深入浅出地介绍了Java语言的核心概念和编程思想。书中的注解强调了Java的设计原则和目标,旨在减轻程序员的工作负担,提高代码质量和可维护性。Java语言注重简洁和强壮性,它的设计允许程序员以自然的方式表达复杂的思维过程。
书中指出,对于初学者来说,逐步理解并掌握每个细节至关重要,过早地接触过于复杂的概念可能会导致混淆。因此,学习路径应该遵循“由浅入深”的原则,激发学生的学习兴趣和自信心。同时,不是所有的编程概念都适用于所有程序员,了解95%程序员无需触及的高级技术可能会干扰他们的基本编程思维。
书中提到了几种早期的编程语言,如LISP、APL和PROLOG,它们从不同的角度看待问题,分别将所有问题简化为列表处理、算法应用和决策链。而Smalltalk作为第一个成功实践面向对象编程的语言,它的五个基本特征对Java产生了深远影响:
1. 一切都是对象。
2. 程序由对象组成,通过消息传递进行交互。
3. 对象有自己的内存空间,可以包含其他对象。
4. 每个对象都有其特定的类型。
5. 同一类的对象可以接收相同的消息,体现了对象的可替换性。
面向对象编程的主要挑战在于如何在问题空间和方案空间之间建立精确的映射。在这个过程中,有两种角色:类创建者和客户程序员。类创建者负责创建新的数据类型,并通过接口暴露必要的功能,隐藏实现细节。客户程序员则使用这些预定义的类来构建应用程序。
接口在Java中扮演着关键角色,它定义了可以向对象发送的一系列请求,每个请求关联一个函数。当发出请求时,对应的函数会被调用,对象负责处理请求的具体实现。在Java中,继承是通过`extends`关键字实现的,子类继承父类的接口,这意味着子类可以接收与父类相同的消息,这体现了Java中类的层次结构和类型等价关系。
《Thinking in Java》涵盖了Java语言的基础和高级特性,强调了面向对象设计的原则,如封装、继承和多态,以及如何通过接口和类组织代码。这本书对于希望深入理解Java编程思想和技术的开发者来说是一本不可多得的资源。