内容简介
第1章 计算机与Java引论
1.1 计算机基础
1.1.1 硬件与内存
1.1.2 程序
1.1.3 编程语言、编译器和解释器
1.1.4 Java字节码
1.1.5 类加载器
1.2 浅尝Java
1.2.1 Java语言的历史
1.2.2 应用程序与小应用程序
1.2.3 第一个Java应用程序
1.2.4 编写、编译和运行Java程序
1.3 编程基础
1.3.1 面向对象编程
1.3.2 算法
1.3.3 测试与调试
1.3.4 软件复用
1.4 图形化编程补充读物
1.4.1 一个JavaFX应用程序样例
1.4.2 图形的尺寸和位置
1.4.3 绘制椭圆和圆
1.4.4 绘制弧
本章小结
练习
实践程序
编程项目
自测问题答案
第2章 基本的计算
2.1 变量和表达式
2.1.1 变量
2.1.2 数据类型
2.1.3 Java标识符
2.1.4 赋值语句
2.1.5 简单输入
2.1.6 简单屏幕输出
2.1.7 常量
2.1.8 具名常量
2.1.9 赋值兼容性
2.1.10 类型强制转换
2.1.11 算术运算
2.1.12 括号和优先级规则
2.1.13 特殊赋值操作符
2.1.14 案例研究:售货机找零
2.1.15 递增和递减操作符
2.1.16 更多有关递增和递减操作符的讨论
2.2 String类
2.2.1 字符串常量和变量
2.2.2 字符串连接
2.2.3 字符串方法
2.2.4 字符串处理
2.2.5 转义字符
2.2.6 Unicode字符集
2.3 键盘和屏幕I/O
2.3.1 屏幕输出
2.3.2 键盘输入
2.3.3 其他输入界定符(选修)
2.3.4 使用printf的格式化输出(选修)
2.4 文档和样式
2.4.1 有意义的变量名
2.4.2 注释
2.4.3 缩进
2.4.4 使用具名常量
2.5 图形化编程补充读物
2.5.1 将样式规则应用于JavaFX应用程序
2.5.2 介绍JOptionPane类
2.5.3 将输入作为其他数字类型读取
2.5.4 编程示例:具有窗口化I/O的找零程序
本章小结
练习
实践程序
编程项目
自测问题答案
第3章 流控制——分支
3.1 if-else语句
3.1.1 基本的if-else语句
3.1.2 布尔表达式
3.1.3 比较字符串
3.1.4 嵌套的if-else语句
3.1.5 多重分支的if-else语句
3.1.6 编程示例:给出字母等第
3.1.7 案例研究:体重指数
3.1.8 条件操作符(选修)
3.1.9 exi t方法
3.2 bool ean类型
3.2.1 布尔变量
3.2.2 优先级规则
3.2.3 布尔值的输入和输出
3.3 switch语句
3.4 图形化编程补充读物
3.4.1 指定绘图颜色
3.4.2 Yes或No问题的对话框
本章小结
练习
实践程序
编程项目
自测问题答案
第4章 流控制——循环
4.1 Java循环语句
4.1.1 while语句
4.1.2 do-while语句
4.1.3 编程示例:臭虫侵扰
4.1.4 编程示例:嵌套循环
4.1.5 for语句
4.1.6 在for语句中声明变量
4.1.7 在for语句中使用逗号(选修)
4.1.8 for-each语句
4.2 用循环编程
4.2.1 循环体
4.2.2 初始化语句
4.2.3 控制循环迭代次数
4.2.4 案例研究:使用布尔变量来终止循环
4.2.5 编程示例:消费热潮
4.2.6 循环中的break语句和continue语句(选修)
4.2.7 循环缺陷
4.2.8 跟踪变量
4.2.9 断言检查
4.3 图形化编程补充读物
4.3.1 编程示例:一个包含多张脸的JavaFX应用程序
4.3.2 绘制文本
本章小结
练习
实践程序
编程项目
自测问题答案
第5章 定义类和方法
5.1 类和方法定义
5.1.1 类文件和单独编译
5.1.2 编程示例:实现Dog类
5.1.3 实例变量
5.1.4 方法
5.1.5 定义void方法
5.1.6 定义有返回值的方法
5.1.7 编程示例:实现Species类的第一次尝试
5.1.8 关键词this
5.1.9 局部变量
5.1.10 块
5.1.11 基本类型参数
5.2 信息隐藏和封装
5.2.1 信息隐藏
5.2.2 前置条件和后置条件注释
5.2.3 publ ic和private修饰符
5.2.4 编程示例:为什么实例变量应该是私有的
5.2.5 编程示例:矩形类的另一种实现
5.2.6 访问器方法和修改器方法
5.2.7 编程示例:Purchase类
5.2.8 调用方法的方法
5.2.9 封装
5.2.10 使用javadoc自动归档
5.2.11 UML类图
5.3 对象和引用
5.3.1 类类型变量
5.3.2 定义类的equals方法
5.3.3 编程示例:Species类
5.3.4 布尔值方法
5.3.5 案例研究:单元测试
5.3.6 类类型参数
5.3.7 编程示例:类类型参数与基本类型参数
5.4 图形化编程补充读物
5.4.1 Graphi csContext类
5.4.2 编程示例:用辅助方法绘制多张脸
5.4.3 向JavaFX应用程序添加标签
本章小结
练习
实践程序
编程项目
自测问题答案
第6章 对象和方法进阶
6.1 构造器
6.1.1 定义构造器
6.1.2 在构造器中调用方法
6.1.3 在构造器中调用其他构造器(选修)
6.2 静态变量和静态方法
6.2.1 静态变量
6.2.2 静态方法
6.2.3 将main方法中的任务划分为子任务
6.2.4 在类中添加main方法
6.2.5 Math类
6.2.6 包装器类
6.3 编写方法
6.3.1 案例研究:格式化输出
6.3.2 分解
6.3.3 解决编译器问题
6.3.4 测试方法
6.4 重载
6.4.1 重载基础知识
6.4.2 重载和自动类型转换
6.4.3 重载和返回类型
6.4.4 编程示例:Money类
6.5 再探信息隐藏
6.6 作为类的枚举
6.7 包
6.7.1 包和导入机制
6.7.2 包名和目录
6.7.3 名字冲突
6.8 图形化编程补充读物
6.8.1 添加按钮
6.8.2 添加图标
本章小结
练习
实践程序
编程项目
自测问题答案
第7章 数组
7.1 数组基础
7.1.1 创建和访问数组
7.1.2 数组详情
7.1.3 实例变量length
7.1.4 进一步了解数组索引
7.1.5 初始化数组
7.2 类和方法中的数组
7.2.1 案例研究:销售报表
7.2.2 索引变量作为方法引元
7.2.3 整个数组作为方法引元
7.2.4 main方法的引元
7.2.5 数组赋值和判等
7.2.6 返回数组的方法
7.3 用数组和类编程
7.3.1 编程示例:专用列表类
7.3.2 部分填充的数组
7.4 数组排序和搜索
7.4.1 选择排序
7.4.2 其他排序算法
7.4.3 在数组中搜索
7.5 多维数组
7.5.1 多维数组基础知识
7.5.2 多维数组作为参数和返回值
7.5.3 多维数组的Java表示形式
7.5.4 参差数组(选修)
7.5.5 编程示例:工时记录
7.6 图形化编程补充读物
7.6.1 布局面板
7.6.2 文本域、文本框和组合布局
7.6.3 绘制多边形
本章小结
练习
实践程序
编程项目
自测问题答案
第8章 继承、多态和接口
8.1 继承基础
8.1.1 派生类
8.1.2 覆盖方法定义
8.1.3 覆盖与重载
8.1.4 final修饰符
8.1.5 基类的私有实例变量与私有方法
8.1.6 UML继承图
8.2 运用继承编程
8.2.1 派生类中的构造器
8.2.2 再论this方法
8.2.3 调用被覆盖的方法
8.2.4 编程示例:派生类的派生类
8.2.5 在Undergraduate中定义equals方法的另一种方式
8.2.6 类型兼容性
8.2.7 Obj ect类
8.2.8 更好的equals方法
8.3 多态
8.3.1 动态绑定和继承
8.3.2 动态绑定toString
8.4 接口与抽象类
8.4.1 类接口
8.4.2 Java接口
8.4.3 实现接口
8.4.4 作为类型的接口
8.4.5 扩展接口
8.4.6 案例研究:字符图形
8.4.7 案例研究:Comparable接口
8.4.8 抽象类
8.5 图形化编程补充读物
8.5.1 事件驱动编程
8.5.2 在单独的类中处理事件
8.5.3 在主GUI应用类中处理事件
8.5.4 在匿名内部类中处理事件
8.5.5 编程示例:添加数字
本章小结
练习
实践程序
编程项目
自测问题答案
第9章 异常处理
9.1 基本的异常处理
9.1.1 Java中的异常
9.1.2 预定义的异常类
9.2 定义自己的异常类
9.3 更多有关异常类的知识
9.3.1 声明异常(传递责任)
9.3.2 异常的种类
9.3.3 错误
9.3.4 多个抛出和捕获
9.3.5 finally块
9.3.6 重新抛出异常(选修)
9.3.7 案例研究:面向命令行的计算器
9.4 图形化编程补充读物
9.4.1 更多的用户界面控件和形状
9.4.2 图像和形状
9.4.3 处理鼠标事件
9.4.4 Timeline类
本章小结
练习
实践程序
编程项目
自测问题答案
第10章 流、文件I/O和网络
10.1 流和文件I/O概览
10.1.1 流的概念
10.1.2 为什么用文件来进行输入/输出
10.1.3 文本文件和二进制文件
10.2 文本文件I/O
10.2.1 创建文本文件
10.2.2 在文本文件中追加内容
10.2.3 从文本文件中读取内容
10.3 适用于所有文件的技术
10.3.1 File类
10.3.2 编程示例:从键盘读取文件名
10.3.3 使用路径名
10.3.4 File类的方法
10.3.5 定义方法来打开流
10.3.6 案例研究:处理由逗号分隔的数值文件
10.4 基本的二进制文件I/O
10.4.1 创建二进制文件
10.4.2 向二进制文件中写入基本类型值
10.4.3 向二进制文件中写入字符串
10.4.4 有关writeUTF的一些细节
10.4.5 从二进制文件中读取内容
10.4.6 EOFException类
10.4.7 编程示例:处理二进制数据文件
10.5 包含对象和数组的二进制文件I/O
10.5.1 包含类的对象的二进制文件I/O
10.5.2 序列化的一些细节
10.5.3 二进制文件中的数组对象
10.6 使用流的网络通信
10.7 图形化编程补充读物
本章小结
练习
实践程序
编程项目
自测问题答案
第11章 递归
11.1 递归基础
11.1.1 案例研究:数字位显示成单词
11.1.2 递归如何工作
11.1.3 无限递归
11.1.4 递归方法与迭代方法
11.1.5 有返回值的递归方法
11.2 运用递归编程
11.2.1 编程示例:要求用户输入必须正确
11.2.2 案例研究:二分搜索
11.2.3 编程示例:归并排序——一种递归排序方法
11.3 图形化编程补充读物
本章小结
练习
实践程序
编程项目
自测问题答案
第12章 动态数据结构和泛型
12.1 基于数组的数据结构
12.1.1 ArrayList类
12.1.2 创建ArrayList的实例
12.1.3 使用ArrayList的方法
12.1.4 编程示例:待办事项列表
12.1.5 参数化类和泛化数据类型
12.2 Java集合框架
12.2.1 Collection接口
12.2.2 HashSet类
12.2.3 Map接口
12.2.4 HashMap类
12.3 链式数据结构
12.3.1 Li nkedLi st类
12.3.2 链表
12.3.3 实现链表的操作
12.3.4 隐私泄露
12.3.5 内部类
12.3.6 节点内部类
12.3.7 迭代器
12.3.8 Java的Iterator接口
12.3.9 链表的异常处理
12.3.10 链表的变体
12.3.11 其他链式数据结构
12.4 泛型
12.4.1 基础知识
12.4.2 编程示例:一个泛化的链表
12.5 图形化编程补充读物
12.5.1 用场景构建器构建JavaFX应用程序
12.5.2 何去何从
本章小结
练习
实践程序
编程项目
自测问题答案
附录A 获取Java
附录B 运行Applet
附录C protected和包修饰符
附录D DecimalFormat类
附录E j avadoc
附录F C++和Java之间的区别
附录G Unicode字符编码
附录H Java 8函数式编程简介
附录I Iterator接口
附录J 克隆
附录K Java保留关键词