前言 1
第一部分 基础教程 1
第1章 Java语言概述 1
1.1 Java语言简介 1
1.1.1 Java语言的产生 1
1.1.2 为什么要学习Java 1
目录 1
1.2 Java的特点 2
1.3.2 无用内存自动回收机制 3
1.3 Java程序及其实现机制 3
1.3.1 Java虚拟机 3
1.3.3 Java与C/C++的区别 4
1.4 建立Java开发环境 4
1.4.1 Java运行环境安装 4
1.4.2 配置环境变量 5
1.5 Java程序的运行 6
1.5.1 Java应用程序 6
1.5.2 Java小应用程序 7
1.6 关于Java的几个常见问题 9
1.5.3 常用的JSDK命令 9
1.7 小结 10
1.8 习题 10
第2章 Java语言基础 11
2.1 标识符与关键字 11
2.1.1 标识符 11
2.1.2 关键字 11
2.2.2 常量 12
2.2 变量、常量和注释 12
2.2.1 变量 12
2.2.3 注释 13
2.3 基本数据类型 13
2.3.1 整型 13
2.3.2 浮点类型 14
2.3.3 字符类型 15
2.3.4 布尔类型 16
2.4 变量赋初值 17
2.3.5 字符串类型 17
2.5 基本数据类型优先关系及相互的转换 18
2.6 运算符与表达式 19
2.6.1 赋值运算符 20
2.6.2 扩展赋值运算符 21
2.6.3 算术运算符 21
2.6.4 关系运算符 23
2.6.5 布尔逻辑运算符 23
2.6.6 位运算 24
2.6.7 条件运算符 26
2.6.8 字符串连接符号 26
2.6.9 其他运算符 26
2.7 表达式 27
2.8 流程控制语句 28
2.8.1 结构化程序设计流程控制结构 28
2.8.2 分支语句 29
2.8.3 循环结构 33
2.8.4 跳转语句 37
2.9 小结 39
2.10 习题 39
第3章 面向对象编程——类与对象 41
3.1 面向对象编程技术 41
3.2 类的创建 43
3.2.1 类声明 43
3.2.2 类体 44
3.2.3 声明成员变量 44
3.2.4 成员方法的声明与实现 45
3 2.5 方法的返回值 46
3.2.6 方法体 46
3.2.7 方法的调用 47
3.3 对象 47
3.3.1 创建对象 47
3.3.2 使用对象 50
3.3.3 构造方法 50
3.3.4 对象的清除 52
3.4.1 访问控制权限修饰符 53
3.4 类的封装 53
3.4.2 设置类的访问权限 54
3.5 Static关键字和静态成员 55
3.5.1 实例变量与类变量 55
3.5.2 通过类名直接访问类变量 57
3.5.3 实例方法与类方法 57
3.6 参数传递 59
3.6.1 传值——传递基本数据类型参数 59
3.6.2 传地址——对象作为参数 60
3.7 小结 61
3.8 习题 61
第4章 面向对象编程——继承与多态 62
4.1 类的继承 62
4.1.1 子类的声明 62
4.1.2 Object类 63
4.1.3 子类继承超类的成员变量 64
4.1.4 子类继承超类的成员方法 65
4.2 类的多态 66
4.2.1 this关键字 67
4.2.2 方法的重载 67
4.2.3 super关键字 69
4.2.4 成员的覆盖 70
4.2.5 子类的对象也是超类的对象 71
4.2.6 子类构造方法的定义 73
4.3 最终类与抽象类 76
4.3.1 最终类 76
4.3.2 抽象类 77
4.4 小结 79
4.5 习题 79
第5章 面向对象编程——接口、内部类与包 81
5.1 接口 81
5.1.1 接口的声明 81
5.1.2 接口的实现 82
5.1.3 理解接口 83
5.2 内部类 85
5.2.1 在外部类的方法中访问内部类 85
5.2.2 在内部类中访问外部类 86
5.2.3 静态内部类的应用 87
5.2.4 静态内部类的特殊用处 89
5.2.5 内部类的其他特性 89
5.3 包 90
5.3.1 包的命名 90
5.3.2 包的创建 91
5.3.3 访问保护 93
5.3.4 常用的Java系统包 95
5.4 JAR文件 96
5.4.1 制作JAR文件发布应用程序 97
5.4.2 JAR命令 98
5.5 小结 99
5.6 习题 100
第6章 字符串与数组 101
6.1 String字符串 101
6.1.1 String类 101
6.1.2 获取字符串长度 104
6.1.3 字符串比较 104
6.1.4 字符串编辑 105
6.1.5 字符串检索与字符串截取 106
6.1.6 字符串与基本数据类型之间的数据转换 108
6.2 StringBuffer类 109
6.2.1 StringBuffer类的常用方法 109
6.2.2 StringBuffer类字符串的修改 111
6.2.3 StringBuffer字符串的插入与追加操作 111
6.3 数组 112
6.3.1 一维数组的声明 112
6.3.3 一维数组的初始化 113
6.3.2 一维数组的创建 113
6.3.4 数组元素的引用 114
6.3.5 数组的长度 114
6.3.6 数组的赋值与复制 115
6.3.7 多维数组 119
6.4 小结 121
6.5 习题 121
第7章 异常处理机制 122
7.1 异常处理基本概念 122
7.2.1 异常的产生 123
7.2 异常的产生与处理机制 123
7.2.2 异常处理机制——try-catch-finally语句 124
7.3 常见异常类 128
7.4 异常的处理 131
7.4.1 主动抛出异常 131
7.4.2 声明抛出异常 133
7.5 自定义异常 135
7.7 习题 136
7.6 小结 136
第8章 Applet 137
8.1 Applet的特点 137
8.1.1 小应用程序的运行过程 137
8.1.2 一个Java小应用程序 138
8.1.3 Applet类 139
8.2 小应用程序的生命周期 139
8.3 小应用程序的安全性 141
8.4 在网页中嵌入Applet 142
8.4.1 嵌入小应用程序的标签属性 142
8.4.2 向小应用程序传递参数 143
8.5 图形绘制与绘图类Graphics 144
8.5.1 paint()方法 144
8.5.2 java.awt.Graphics类 145
8.5.3 图形坐标系 145
8.5.4 绘制图形 145
8.5.5 绘制文本 146
8.5.6 设置字体 147
8.5.7 设置颜色 147
8.6 小结 148
8.5.8 颜色和字体的设置 148
8.7 习题 149
第9章 图形用户界面设计 150
9.1 用AWT生成图形用户界面 150
9.2 容器和组件 151
9.2.1 组件类——Component 151
9.2.2 容器类 152
9.2.3 框架类——Frame 153
9.3 Button类、Label类和TextField类 153
9.3.3 文本行类——TextField类 154
9.3.1 按钮类——Button类 154
9.3.2 标签类——Label类 154
9.3.4 一个图形用户程序实例 155
9.4 事件处理机制 156
9.4.1 Java的事件处理机制 156
9.4.2 委托事件处理模型 157
9.4.3 常见事件类与事件类的接口 161
9.4.4 事件适配器 163
9.4.5 常用的监听器类实现方式 165
9.5 布局管理器 167
9.5.1 FlowLayout 167
9.5.2 BorderLayout 169
9.5.3 GridLayout 170
9.5.4 CardLayout 171
9.5.5 布局管理器小结 174
9.6 小结 174
9.7 习题 174
10.1 文本区 175
第10章 常用的AWT组件 175
10.2 选择性组件 178
10.2.1 复选框与单选按钮 178
10.2.2 选择框——Choice 181
10.2.3 列表框——List 182
10.3 对话框 185
10.3.1 对话框窗口 185
10.3.2 文件对话框 185
10.4.1 下拉式菜单 187
10.4 菜单 187
10.4.2 弹出式菜单 190
10.4.3 使用菜单的几个技巧 190
10.5 Java中的窗口、鼠标与键盘事件的处理 194
10.5.1 窗口事件的处理 194
10.5.2 鼠标事件的处理 196
10.5.3 键盘事件的处理 198
10.6 小结 201
10.7 习题 201
11.1.1 程序、进程和线程 202
第11章 多线程 202
11.1 多线程编程概述 202
11.1.2 线程模型 203
11.2 线程的创建 203
11.2.1 Thread类与Runnable接口 203
11.2.2 在程序中实现多线程 204
11.3 线程的生命周期与控制 207
11.3.1 线程的生命周期 207
11.3.2 线程的调度与优先级 209
11.3.3 几个常用的控制线程的方法 211
11.4 线程同步 213
11.4.1 多线程间资源共享的同步处理 213
11.4.2 多线程合作的同步 218
11.4.3 死锁问题 223
11.5 小结 224
11.6 习题 224
12.1 显示图像 225
12.1.1 加载图像 225
第12章 多媒体编程 225
12.1.2 显示图像 226
12.2 播放声音文件 228
12.3 小结 230
12.4 习题 230
第13章 输入/输出流 231
13.1 数据流的基本知识 231
13.1.1 标准输入/输出 232
13.1.2 java.io包中的输入/输出流类 233
13.2.2 字节输出流OutputStream 234
13.2 字节类流 234
13.2.1 字节输入流InputStream 234
13.2.3 FileInputStream类实现文件的顺序读取 235
13.2.4 FileOutputStream类实现文件的顺序写 237
13.2.5 数据流 238
13.2.6 对象流 240
13.3 管道流 242
13.4 字符类流 244
13.4.1 Reader类和Writer类 244
13.4.2 字符文件流FileReader类与FileWriter类 246
13.4.3 字符缓冲流BufferedReader类与BufferedWriter类 247
13.5 文件随机访问类RandomAccessFile 248
13.6 文件对话框的使用 250
13.7 小结 254
13.8 习题 254
第14章 文件管理与File类 255
14.1 File类 255
14.1.1 File类的构造方法 255
14.1.2 File类的实例方法 256
14.2 显示目录的文件清单 258
14.2.1 无参数的list方法 259
14.2.2 文件过滤器FilenameFilter 259
14.2.3 文件过滤器FileFilter 261
14.3 文件与目录的创建与删除 262
14.4 获取文件属性 263
14.5 使用临时文件 264
14.6 运行本地可执行程序 266
14.8 习题 267
14.7 小结 267
第二部分 上机实验与课程设计 271
实验1 一个Java应用程序和一个简单的Java Applet 271
实验2 Java语言基础知识 273
实验3 分支语句与循环语句 274
实验4 类与对象 275
实验5 继承与多态 276
实验6 接口与内部类 277
实验7 数组与字符串 278
实验8 异常处理 279
实验9 Applet 280
实验10 GUI界面设计及事件处理 282
课程设计1 Windows系统的计算器 283
实验11 多线程 284
课程设计2 Windows系统的日期和时间属性 285
实验12 文件和输入/输出流 286
课程设计3 设计一个简单的通讯录 287
参考文献 288