第1篇 Java语言基础篇 30
第1章 Java语言概述 30
1.1 Java语言简介 30
1.1.1 Java语言的起源 30
1.1.2 使用Java语言的优点 31
1.2 Java语言与Java平台 32
1.2.1 Java程序设计语言 32
1.2.2 Java平台 32
1.3 搭建Java程序开发环境 33
1.3.1 系统要求 33
1.3.2 下载Java程序开发工具包JDK 34
1.3.3 安装JDK 35
1.3.4 在Windows系统下配置JDK 36
1.4 开发第一个Java应用程序 37
1.4.1 创建第一个Java应用程序源文件 37
1.4.2 将HelloWorldApp.java源文件编译为.class文件 38
1.4.3 运行HelloWorldApp应用程序 39
1.4.4 Java应用程序的基本结构 40
1.5 小结 41
第2章 Java语言基本语法 42
2.1 标识符和关键字 42
2.1.1 标识符 42
2.1.2 关键字 42
2.1.3 标识符命名规则 43
2.2 常量与变量 43
2.2.1 常量的概念及常量声明 43
2.2.2 变量的概念及变量声明 44
2.3 基本数据类型 45
2.3.1 数据类型 45
2.3.2 整数类型 45
2.3.3 浮点类型 47
2.3.4 字符类型 47
2.3.5 逻辑类型 49
2.3.6 不同数据类型间的转换 49
2.4 运算符与表达式 51
2.4.1 算术运算符与算术表达式 51
2.4.2 赋值运算符与赋值表达式 52
2.4.3 自增和自减运算符 53
2.4.4 关系运算符和关系表达式 54
2.4.5 逻辑运算符和逻辑表达式 54
2.4.6 位运算符 57
2.4.7 三元运算符 59
2.4.8 运算符的优先级 60
2.5 小结 60
第3章 数组 61
3.1 数组的概念与特点 61
3.1.1 什么是数组 61
3.1.2 Java语言中数组的特点 62
3.2 一维数组 62
3.2.1 声明一维数组变量 62
3.2.2 创建一维数组对象 63
3.2.3 访问一维数组元素 63
3.2.4 修改一维数组元素 64
33 多维数组 65
3.3.1 声明二维数组变量 65
3.3.2 创建二维数组对象 66
3.3.3 访问二维数组元素 67
3.3.4 修改二维数组元素 67
3.4 小结 68
第4章 程序流程控制语句 69
4.1 选择语句 69
4.1.1 if选择语句 69
4.1.2 if-else双分支选择语句 70
4.1.3 if-else-if多分支选择语句 71
4.1.4 选择语句的嵌套 74
4.1.5 switch多分支开关语句 76
4.1.6 if选择语句与switch开关语句的区别 78
4.2 循环语句 78
4.2.1 while循环语句 78
4.2.2 do-while循环语句 80
4.2.3 for循环语句 83
4.2.4 循环语句的嵌套 85
4.2.5 使用增强型for语句遍历一维数组中的元素 87
4.2.6 对一维数组进行排序 88
4.2.7 使用增强型for语句遍历二维数组中的元素 89
4.3 跳转语句 90
4.3.1 break跳转语句 90
4.3.2 continue跳转语句 93
4.4 实例 94
4.4.1 实例1:译密码 95
4.4.2 实例2:打印九九乘法表 96
4.5 小结 97
第5章 数字、字符和字符串处理 98
5.1 数字 98
5.1.1 Numbers数字包装器类 98
5.1.2 数字的格式化输出 100
5.1.3 Math数学运算处理类 104
5.2 字符 107
5.2.1 Character字符包装器类 107
5.2.2 转义字符序列 108
5.3 使用String类 109
5.3.1 创建字符串对象 109
5.3.2 获取字符串的长度 110
5.3.3 连接字符串 110
5.3.4 字符串与字符数组 112
5.3.5 在一个字符串中操纵字符 113
5.3.6 字符串比较和字符串部分内容比较 117
5.4 使用StringBuilder类 120
5.4.1 认识StringBuilder类 120
5.4.2 StringBuilder对象的长度和容量 121
5.4.3 StringBuilder类提供的操作方法 121
5.5 实例 123
5.5.1 实例1:用户登录验证程序 123
5.5.2 实例2:敏感词过滤程序 125
5.6 小结 126
第2篇 Java面向对象篇 128
第6章 类和对象 128
6.1 面向对象简介 128
6.1.1 什么是对象 128
6.1.2 什么是类 130
6.1.3 什么是继承 131
6.1.4 什么是接口 131
6.1.5 什么是包 132
6.2 定义类 132
6.2.1 类的基本结构 132
6.2.2 声明类的成员变量 134
6.2.3 声明类的成员方法 135
6.2.4 成员方法命名 136
6.2.5 方法重载 137
6.2.6 调用成员方法 137
6.2.7 为类提供构造器 139
6.3 向方法或构造器内传递信息 140
6.3.1 使用参数 140
6.3.2 实参与形参的关系 141
6.3.3 参数类型 143
6.3.4 传递任意数量的参数 143
6.3.5 参数名称 144
6.3.6 传递原始数据类型参数 144
6.3.7 传递引用数据类型参数 145
6.4 对象 145
6.4.1 对象实例 145
6.4.2 创建对象 147
6.4.3 使用对象 150
6.5 方法的返回值 152
6.5.1 返回值 152
6.5.2 返回类或接口 153
6.6 使用this关键字 153
6.6.1 对字段使用this 154
6.6.2 对构造器使用this 154
6.7 控制对类的成员的访问 155
6.8 理解实例成员和类成员 156
6.8.1 类变量 156
6.8.2 类方法 158
6.8.3 常量 158
6.8.4 实例:AutoCar类 158
6.9 初始化字段 159
6.9.1 静态初始化块 159
6.9.2 初始化实例成员 160
6.10 枚举类型 161
6.11 标注 164
6.11.1 标注的用法 164
6.11.2 文档标注 164
6.11.3 预定义标注 165
6.11.4 标注处理 168
6.12 小结 168
第7章 继承 169
7.1 继承概述 169
7.1.1 继承的概念 169
7.1.2 Java平台中的类层次 169
7.1.3 一个继承的示例 170
7.1.4 在子类中可以做的事情 171
7.2 从子类中访问父类的私有成员 172
7.3 对象类型转换 173
7.3.1 隐式对象类型转换 173
7.3.2 强制对象类型转换 174
7.3.3 使用instanceof运算符 174
7.4 覆盖和隐藏超类中的方法 174
7.4.1 覆盖超类中的实例方法 175
7.4.2 协变覆盖 175
7.4.3 隐藏超类中的类方法 176
7.4.4 方法覆盖和方法隐藏后的修饰符 178
7.4.5 方法覆盖和方法隐藏总结 178
7.5 隐藏超类中的字段 179
7.6 使用super关键字访问超类中的成员 180
7.6.1 调用超类中被覆盖的方法 180
7.6.2 访问超类中被隐藏的字段 180
7.7 使用super关键字调用超类的构造器 181
7.7.1 调用超类的无参构造器 181
7.7.2 调用超类的带参构造器 183
7.7.3 构造器链 184
7.8 Object类 185
7.8.1 作为超类的Object类 185
7.8.2 Object类的对象克隆方法clone() 186
7.8.3 Object类的对象比较方法equals() 186
7.8.4 Object类的对象清除方法finalize() 187
7.8.5 Object类的获取对象类信息的方法getClass() 187
7.8.6 Object类的获得对象内存地址的方法hashCode() 188
7.8.7 Object类的对象字符串表示方法toString() 188
7.9 编写final类和final方法 188
7.9.1 使用final关键字声明final方法 188
7.9.2 使用final关键字声明final类 189
7.10 小结 189
第8章 接口 190
8.1 理解接口 190
8.1.1 一般接口的概念 190
8.1.2 Java中的接口 191
8.1.3 在Java中定义接口 191
8.1.4 在Java中使用接口 191
8.1.5 作为API的接口 192
8.1.6 接口和多继承 192
8.2 定义接口 193
8.2.1 接口声明 193
8.2.2 接口体 193
8.3 实现接口 194
8.3.1 实现接口的语法 194
8.3.2 接口实例:Relatable 195
8.3.3 实现接口Relatable 195
8.3.4 编译并运行带有接口的实例 196
8.3.5 实现多个接口时的常量和方法冲突问题 197
8.4 将接口作为类型使用 198
8.5 改写接口 199
8.6 小结 200
第9章 抽象类与嵌套类 201
9.1 抽象类和抽象方法 201
9.1.1 抽象方法 201
9.1.2 抽象类 201
9.1.3 抽象类与接口对比 202
9.1.4 抽象类实例 202
9.1.5 抽象类实现接口 203
9.1.6 抽象类的类成员 204
9.2 嵌套类 204
9.2.1 为什么要使用嵌套类 205
9.2.2 静态嵌套类 205
9.2.3 内部类 205
9.2.4 内部类实例 206
9.2.5 局部内部类和匿名内部类 207
9.2.6 内部类的修饰符 207
9.3 小结 207
第10章 泛型 208
10.1 泛型简介 208
10.1.1 为什么要使用泛型 208
10.1.2 一个简单的Box类 208
10.2 泛型类型 210
10.2.1 Box类的泛型版本 210
10.2.2 类型参数命名惯例 212
10.3 泛型方法和泛型构造器 212
10.4 限定的类型参数 213
10.5 泛型子类型 214
10.6 使用通配符 215
10.7 类型擦除 216
10.8 小结 217
第11章 包 218
11.1 使用包 218
11.2 创建包 219
11.2.1 创建包的语句 219
11.2.2 命名包 220
11.2.3 包命名惯例 220
11.3 使用包中的成员 221
11.3.1 通过全限定名引用包成员 221
11.3.2 导入包中的成员 221
11.3.3 导入整个包 222
11.3.4 包的层级 222
11.3.5 包成员名称冲突 223
11.3.6 静态导入语句 223
11.4 管理源文件和class类文件 224
11.4.1 管理实现策略 224
11.4.2 设置CLASSPATH系统变量 225
11.5 小结 225
第12章 集合 226
12.1 Java集合框架概述 226
12.1.1 Java集合框架 226
12.1.2 使用Java集合框架的益处 227
12.2 核心集合接口 227
12.3 Collection接口 229
12.3.1 转换构造器 229
12.3.2 Collection接口的定义 229
12.3.3 Collection接口的基本操作 230
12.3.4 遍历Collection接口 230
12.3.5 Collection接口的批量操作 231
12.3.6 Collection接口的数组操作 231
12.4 Set接口 232
12.4.1 Set接口的定义 232
12.4.2 Set接口的基本操作 233
12.4.3 Set接口的批量操作 234
12.4.4 Set接口的数组操作 235
12.5 List接口 235
12.5.1 List接口的定义 235
12.5.2 List接口与Vector的比较 236
12.5.3 从Collection继承的操作 236
12.5.4 按位置访问和查找操作 237
12.5.5 List迭代器 238
12.5.6 子集合操作 240
12.6 Queue接口 242
12.6.1 Queue接口的定义 242
12.6.2 Queue接口的操作 242
12.6.3 Queue接口应用 243
12.7 Map接口 243
12.7.1 Map接口的定义 243
12.7.2 Map接口的基本操作 244
12.7.3 Map接口的批量操作 245
12.7.4 集合视图 245
12.8 SortedSet接口 246
12.8.1 SortedSet接口的定义 246
12.8.2 SortedSet接口的操作 247
12.8.3 SortedSet接口的标准构造器 247
12.8.4 子集合操作 247
12.8.5 端点操作 248
12.9 SortedMap接口 248
12.9.1 SortedMap接口的定义 249
12.9.2 SortedMap接口的操作 249
12.9.3 SortedMap接口的标准构造器 249
12.9.4 与SortedSet接口的比较 249
12.10 实现 250
12.10.1 实现的类型 250
12.10.2 Set接口的实现 251
12.10.3 List接口的实现 252
12.10.4 Map接口的实现 252
12.10.5 Queue接口的实现 253
12.11 算法 253
12.11.1 Collections类 254
12.11.2 排序 254
12.11.3 乱序 254
12.11.4 常规数据处理 255
12.11.5 查找 255
12.11.6 组成 255
12.11.7 查找极值 255
12.12 小结 256
第3篇 Java图形图像篇 258
第13章 创建一个图形界面应用程序 258
13.1 Java Swing简介 258
13.1.1 什么是Swing 258
13.1.2 Swing特性 259
13.2 创建一个简单的图形界面程序 260
13.2.1 HelloWorldSwing.java界面程序示例 260
13.2.2 编译并运行HelloWorldSwing程序 261
13.3 使用Swing顶层容器 262
13.3.1 Swing中的项层容器类 262
13.3.2 顶层容器和容器层级 264
13.3.3 向内容面板中添加组件 264
13.3.4 给窗体添加一个菜单栏 265
13.3.5 根面板 265
13.4 使用JFrame类创建图形界面程序窗体 265
13.4.1 创建并显示一个窗体 265
13.4.2 创建窗体的一般步骤 266
13.4.3 指定窗口装饰 267
13.4.4 响应窗口关闭事件 269
13.4.5 窗体API 270
13.5 小结 271
第14章 使用Swing基本组件 272
14.1 认识JComponent类 272
14.1.1 JComponent特性 272
14.1.2 Jcomponent API 273
14.2 基本控件 276
14.2.1 按钮组件JButton 276
14.2.2 复选框组件JCheckBox 280
14.2.3 单选按钮组件JRadioButton 281
14.2.4 文本框组件JTextField 282