前 言
本书通过Java语言来讲解编程的基础知识。该书假设读者之前没有任何编程经验。本书首先介绍最基本的知识,例如,如何编译和运行Java程序;接着,讨论关键字、运算符和一些形成Java语言的构造。本书还会涉及Java的应用编程接口(Application Programming Interface,API)库。其中,包括Swing框架,它可以用来创建具有图形用户界面(Graphical User Interface,GUI)的程序。还包括集合框架,它可以用来存储对象集合。简而言之,本书旨在对Java进行全面的介绍。与其他计算机语言一样,Java会随着时间演化。在本书编写时,最新的版本是Java 7(JDK 7)。本书将使用这个版本。但是,大部分的内容也适用于其他Java版本,如版本6。
开门见山的讲授方法
本书使用了“开门见山的”讲授方法。这意味着本书将以一种连贯的顺序介绍各个主题,使注意力能够集中在当前的主题上。这种方法简化了讲授过程,使其流水化了。对于那些需要从主要讲授流程中分离的情况,我们会试图以一种尽量连贯的方式来讲授。这种方法的目的在于能够清楚地显示Java各部分之间的关系,而不是将各部分当作没有关系的特性。
为了能够更好地组织内容,本书分为三部分:第一部分描述定义Java语言的元素和编程的核心元素。首先对Java进行概览,然后介绍数据类型、运算符和控制语句的基本概念。接着逐渐介绍该语言更复杂的特性,如类、方法、继承、接口、包、异常、多线程和泛型。因为许多Java程序都将输入输出作为其中的一部分,所以第一部分还介绍输入/输出。因为applet是典型的Java应用程序,所以也介绍applet的基础知识。第一部分以介绍面向对象设计的章节结束。
在第一部分中,“开门见山的”讲授方法将持续关注Java语言的元素和编程基础。每个新的章节都建立在前一章节的基础之上,并尽量不从主要的话题中撇开。例如,用Swing进行GUI编程的讨论在第二部分中处理,而不是与基本概念的讨论混在一起。通过这样的处理,第一部分的介绍将紧紧根植于Java和编程的关键问题。
第二部分介绍Swing。它首先对用Swing进行GUI编程进行概览,包括了组件、事件、布局管理器的基本概念。后续章节依序对一些Swing组件、菜单、对话框、绘图等进行介绍。这种“开门见山的”讲授方法能够帮助读者更好地将新学到的特性融入Swing框架的整个版图中。
第三部分探究Java API库的部分内容。因为API库非常庞大,所以本书不可能将其全部囊括。我们将只关心库中每个Java程序员都应该熟悉的那些部分。这里会覆盖java.lang包和java.util包的大部分内容,还会特别关注集合框架。同时,我们还对网络进行概述,介绍并发API,包括Fork/Join框架。这些内容将以“开门见山的”方式介绍,使读者能够对一些核心的库元素奠定坚实的基础。
以恰到好处的时机介绍对象
对于一本编程书,其中的第一个疑问是,它在介绍面向对象编程的概念时是较早地引入“对象”这个概念,还是较晚地引入“对象”这个概念。当然,对其是“早”还是“晚”的评价具有一定的主观性,这两种评价都不能确切地描述本书的组织方式。我们的方法可以形容为较早地介绍,但是又不太早。我们的目标是在合适的时机介绍对象。在学习完该语言的关键特性后,就介绍对象。
在本书中,前三章重点介绍Java语言的基本知识,例如语法、数据类型、运算符和控制语句。我们相信,因为这些元素形成了该语言、甚至整个编程的基础,所以掌握这些元素必须放在第一步。换句话说,如果不理解这些元素,就很难编写有意义的程序。我们认为,只有在学习程序的基本元素后,读者才能够学习对象。
在本书概述基础知识后,第4章介绍了对象。从此,面向对象的特性、技术和概念就融入到后续的章节中。另外,这里对对象的介绍非常谨慎,是逐层深入的。这能帮助读者掌握上下文中的每个新细节,而不会觉得过于困难。
目 录
第一部分 Java语言
第1章 Java编程基础
1.1 计算基础
1.2 程序
1.3 编程语言
1.4 Java语言
1.5 面向对象编程的关键特性
1.6 Java开发工具包
1.7 第一个简单的程序
1.8 处理语法错误
1.9 第二个简单的程序
1.10 另一种数据类型
1.11 两种控制语句
1.12 创建代码块
1.13 分号和语句的位置
1.14 关于缩进
1.15 Java关键字
1.16 Java中的标识符
1.17 Java类库
1.18 习题
第2章 数据类型和运算符
2.1 为什么数据类型很重要
2.2 Java的基本数据类型
2.3 字面量
2.4 深入解析变量
2.5 变量的作用域和生命周期
2.6 运算符
2.7 算术运算符
2.8 关系运算符和逻辑运算符
2.9 具有“短路”功能的逻辑运算符
2.10 赋值运算符
2.11 速记赋值运算符
2.12 赋值中的类型转换
2.13 使用强制类型转换
2.14 运算符的优先级
2.15 表达式
2.16 习题
第3章 程序控制语句
3.1 从键盘输入字符
3.2 if语句
3.3 嵌套的if语句
3.4 if-else-if梯队
3.5 switch语句
3.6 嵌套的switch语句
3.7 for循环
3.8 for循环中的一些特殊情况
3.9 在for语句内部声明循环控制变量
3.10 增强的for循环
3.11 while循环
3.12 do-while循环
3.13 使用break语句退出循环
3.14 像使用goto语句一样使用break语句
3.15 使用continue语句
3.16 嵌套的循环
3.17 习题
第4章 类、对象和方法初探
4.1 类的基础知识
4.1.1 类的一般形式
4.1.2 定义类
4.2 如何创建对象
4.3 变量引用和赋值语句
4.4 方法
4.5 从方法返回
4.6 返回值
4.7 使用形参
4.8 构造函数
4.9 含有形参的构造函数
4.10 new运算符再探
4.11 垃圾回收和终结器
4.12 使用this关键字
4.13 习题