
本书由浅入深,逐步引导大家进入Java语言世界。从Java的起源与发展到面向对象的理论与实际编程,从基本语法与控制语句到基本对象的使用与编写逐一进行详细介绍;在介绍Applet小程序与Swing基础之后,逐步深入Java布局设计、用户事件处理、图形处理、动画设计、声音处理、Java接口、异常和包、Java流;最后介绍Java网络编程、JavaBean的使用以及Java数据库编程和数据结构。本书结构清晰、实例丰富,可操作性强,适合于Java初、中级用户阅读,也适合相关培训班用作培训教材。
前 言
在浩瀚的计算机技术世界里,兴兴衰衰的故事此起彼伏。要想学好编程技术,选择一种生命力旺盛、功能强大的工具尤为重要。读者既已捧起本书,相信对Java已有向往之心,那就跟随我们一起探寻Java的奇妙世界吧。
C++之父Bjame Stroustrup先生曾经说过,“Java is not a platform independent,it is a platform。”(Java不是平台无关的,Java是一个平台)。以前Java宣传的是“一种跨平台的语言”,现在Java已经发展成了平台,而且不止是一种平台,它包括J2EE(Java 2 Enterprise Edition)、J2SE(Java 2 Standard Edition)、J2ME(Java 2 Micro Edition)。随着时间和技术的发展,未来的Java一定会发展成为更多的平台,应用会更加广泛。
从上述可以看出,经过短短几年的时间,Java的发展是多么迅猛,并且难能可贵的是其势头良好。学习Java技术已经成为一种潮流。
本书希望能指引Java初、中级用户逐步领略Java的强大功能,进入Java世界。全书共分为19章,从基础的编程概念到图形图像、声音、网络及数据库等高级编程。
第1章 Java语言简介。从1995年发布Java编程语言的第一个版本以来,期间Java的发展历程在本章都有介绍,并在本章最后别开生面地创建第一个Java程序。
第2章 面向对象编程。20世纪,计算机界有两件影响力巨大的事件,一是面向对象程序设计概念的形成;二是国际互联网的快速崛起。现在面向对象程序设计方法已成为编程基础概念,本章将详细讲解此概念。
第3、4、5、6章 分别介绍Java语言基础、Java中的对象、数组和控制结构、类和方法的创建,带领读者掌握Java的语言基础。
第7章 Java小程序简介。小程序Applet在网页内执行和显示,它们可以使用Web浏览器所提供的图形、用户界面和事件结构。这个功能为Applet程序员提供了许多便利。
第8、9章 介绍Swing的接口、应用等知识。
第10章 Java的布局设计。Java本身提供了5种布局管理器,可以满足大多数的布局需要,包括流动布局、网格布局、边界布局、卡片布局和网格袋布局,关于它们的使用方法将在此章介绍。
第11章 响应用户事件。将程序设计成“事件驱动(event driven)”,在编写和维护上将会比较方便。Java就是这样一种语言,Java把每一种事件都写成一个类,类中存储事件的信息。
第12章 图形设计。本章从基本的Graphics图形类开始,循序渐进地讲述基本图形的绘制方法和颜色填充方法,详细讨论如何使用Java提供的各种字体,并取得字体的基本信息。
第13、14章 介绍动画和声音的处理技术。
第15、16章 介绍Java接口、异常、包和流。在Java中使用接口是因为Java只能实现单继承,Java使用接口以从其他类获取方法和功能。异常是一种报告错误和响应错误的灵活方法。包是类和接口的容器,用于把名字空间组织成松散的层次结构。流就是具有源或目标的一串有序字节,Java的I/O流库提供大量的流类(在包java.io中)。
第17章 Internet通信。用Java进行网络编程非常有意思,java.net包中的类隐藏了TCP/IP层,使得用Java编写Internet通信的程序变得非常简单。
第18章 使用JavaBean。JavaBean解决了软件重用问题。
第19章 数据库编程与数据结构。介绍ODBC、JDBC、JDBC-ODBC以及数据结构的概念。
本书实例均已通过实际调试验证,读者阅读时可以举一反三,相信会受益匪浅。
本书的1~9章由葛朝军编写,10~19章由刘伟编写。本书编写过程中,张良、龚汉明、吴宇锦、王晋、杜建斌、赵波、余艳军、张正明、张志涛、郭鹏、张晓霖、阎为民、方威、张俊岭、刘旭、杜江等人均给予了有益的建议和帮助,在此一并表示感谢!
虽倾心相注,精心而为,但限于作者水平,谬误及不足仍在所难免,恳请读者不吝赐教,我们会全力改进,在后续工作中提高。
作 者
目 录
第1章 Java 2介绍 1
1.1 探索Java 2 2
1.1.1 Java的发展 2
1.1.2 交互式Web编程 2
1.1.3 Java语言的来源 4
1.1.4 Java语言的版本 5
1.1.5 Java的前景 5
l.2 选择Java的原因 6
1.2.1 面向对象 6
1.2.2 易于学习 6
1.2.3 平台无关性 7
1.3 Java编程 8
1.3.1 选择Java开发工具 8
1.3.2 安装软件开发工具包 9
1.4 第一个Java程序 13
1.5 小结 18
1.6 思考和练习 19
1.6.1 思考题 19
1.6.2 选择题 19
1.6.3 上机操作 19
第2章 面向对象编程 21
2.1 面向对象的思考方法 22
2.2 对象和类 22
2.3 属性和行为 24
2.3.1 对象的类的属性 25
2.3.2 对象的类的行为 25
2.3.3 创建类 26
2.3.4 运行程序 28
2.4 组织类和类行为 31
2.4.1 继承 32
2.4.2 接口 36
2.4.3 包 36
2.5 小结 37
2.6 思考和练习 38
2.6.1 思考题 38
2.6.2 选择题 38
2.6.3 上机操作 38
第3章 Java语言基础 39
3.1 语句和表达式 40
3.2 变量和数据类型 40
3.2.1 创建变量 41
3.2.2 命名变量 42
3.2.3 变量类型 42
3.2.4 数据类型 43
3.2.5 类的类型 44
3.2.6 变量赋值 44
3.2.7 常量 44
3.3 注释 45
3.4 文字 46
3.4.1 数字文字 46
3.4.2 布尔文字 47
3.4.3 字符文字 48
3.4.4 字符串文字 48
3.5 表达式和运算符 49
3.5.1 算术运算 50
3.5.2 赋值 51
3.5.3 加1和减1 52
3.5.4 比较 53
3.5.5 逻辑运算符 54
3.5.6 运算符优先级 55
3.6 字符串算术运算 56
3.7 小结 57
3.8 思考和练习 58
3.8.1 思考题 58
3.8.2 选择题 58
3.8.3 上机操作 59
第4章 Java中的对象 61
4.1 创建对象 62
4.1.1 使用new 62
4.1.2 new的功能 64
4.1.3 内存管理说明 64
4.2 类和实例变量 64
4.2.1 获得值 65
4.2.2 修改值 65
4.2.3 类变量 66
4.3 调用方法 67
4.3.1 嵌套方法调用 68
4.3.2 类方法 69
4.4 引用对象 70
4.5 强制转换及转换对象和原始类型 71
4.5.1 原始类型的强制转换 72
4.5.2 对象的强制转换 73
4.5.3 原始类型转换为对象及其相反过程 74
4.6 比较对象值和类 75
4.6.1 比较对象 75
4.6.2 确定对象的类 77
4.7 小结 77
4.8 思考和练习 78
4.8.1 思考题 78
4.8.2 选择题 78
4.8.3 上机操作 78
第5章 数组和控制结构 79
5.1 数组 80
5.1.1 声明数组变量 80
5.1.2 创建数组对象 81
5.1.3 访问数组元素 81
5.1.4 修改数组元素 82
5.1.5 多维数组 84
5.2 块语句 85
5.3 if语句 86
5.4 switch语句 87
5.5 for循环 93
5.6 while循环和do循环 95
5.6.1 while循环 95
5.6.2 do...while循环 97
5.7 跳出循环 98
5.7.1 标记循环 98
5.7.2 条件运算符 99
5.8 小结 100
5.9 思考和练习 100
5.9.1 思考题 100
5.9.2 选择题 100
5.9.3 上机操作 101
第6章 创建类和方法 103
6.1 类的一般形式 104
6.2 创建实例和类变量 105
6.2.1 定义实例变量 105
6.2.2 类变量 106
6.3 方法 106
6.3.1 定义方法 106
6.3.2 使用this 108
6.3.3 变量作用域 109
6.3.4 向方法传递参数 110
6.3.5 类方法 112
6.4 创建Java应用程序 112
6.5 Java应用程序和命令行参数 114
6.5.1 向Java应用程序传递参数 114
6.5.2 处理参数 114
6.6 创建名称相同、参数不同的方法 116
6.7 构造函数方法 117
6.7.1 使用构造函数方法 117
6.7.2 重载构造函数方法 119
6.8 方法重载 120
6.8.1 创建重载方法 121
6.8.2 调用初始方法 122
6.8.3 重载构造函数 122
6.9 终结方法 124
6.10 小结 125
6.11 思考和练习 125
6.11.1 思考题 125
6.11.2 选择题 125
6.11.3 上机操作 126
第7章 Java小程序简介 127
7.1 小程序和应用程序的区别 128
7.2 小程序的安全限制 129
7.3 创建小程序 130
7.3.1 Java小程序的主要活动 131
7.3.2 示例小程序 134
7.4 包含小程序的网页 137
7.4.1 <Applet>标签 137
7.4.2 测试结果 138
7.5 <APPLET>标签的其他内容 139
7.5.1 ALIGN 139
7.5.2 HSPACE和VSPACE 140
7.5.3 CODE和CODEBASE 141
7.5.4 <OBJECT>标签 142
7.6 使用Java存档文件 142
7.7 向小程序传递参数 143
7.8 开发Java 2小程序 147
7.8.1 在网页上使用Plug-in 148
7.8.2 运行Plug-in 149
7.9 小结 150
7.10 思考和练习 151
7.10.1 思考题 151
7.10.2 选择题 151
第8章 学习Swing 153
8.1 Swing概要 154
8.1.1 JFC技术 155
8.1.2 Swing的特点 155
8.1.3 Swing包 156
8.1.4 JComponent类 156
8.2 辅助选项支持 159
8.3 Swing应用程序 160
8.3.1 创建接口 161
8.3.2 创建框架和窗口 163
8.3.3 关闭窗口 165
8.3.4 创建组件 167
8.3.5 在容器中添加组件 168
8.3.6 在小程序中添加组件 169
8.4 使用组件 170
8.4.1 图像图标 171
8.4.2 标签 172
8.4.3 文本域 173
8.4.4 文本区域 174
8.4.5 滚动窗格和滚动条 175
8.4.6 复选框和单选按钮 176
8.4.7 下拉列表和组合框 179
8.5 小结 180
8.6 思考和练习 181
8.6.1 思考题 181
8.6.2 选择题 181
第9章 Swing窗口 183
9.1 Swing的特征 184
9.1.1 设置组件的外观 184
9.1.2 标准对话框 185
9.1.3 对话框示例 189
9.1.4 滑块 191
9.1.5 滚动窗格 194
9.1.6 工具栏 195
9.1.7 进度条 198
9.2 小结 200
9.3 思考和练习 201
9.3.1 思考题 201
9.3.2 选择题 201
第10章 Java的布局设计 203
10.1 基本界面布局 204
10.1.1 布局管理器基础 204
10.1.2 流动布局 205
10.1.3 网格布局 207
10.1.4 边界布局 211
10.2 卡片布局 213
10.3 网格袋布局 217
10.4 空布局和setBounds方法 220
10.5 小结 223
10.6 思考和练习 224
10.6.1 选择题 224
10.6.2 上机操作 224
第11章 响应用户事件 227
11.1 事件监听器 228
11.1.1 设置组件 228
11.1.2 事件处理方法 229
11.2 使用方法 230
11.2.1 鼠标事件 230
11.2.2 鼠标移动事件 233
11.2.3 键盘事件 234
11.2.4 窗口事件 237
11.2.5 项目事件 239
11.3 小结 240
11.4 思考和练习 241
11.4.1 选择题 241
11.4.2 上机操作 242
第12章 图形设计 243
12.1 图形类 244
12.2 绘图和填充 245
12.2.1 画线 246
12.2.2 绘制矩形 247
12.2.3 绘制多边形 249
12.2.4 绘制圆弧 251
12.2.5 绘制椭圆 252
12.3 文本和字体 253
12.3.1 创建Font对象 253
12.3.2 绘制字符和字符串 254
12.3.3 查找字体信息 256
12.4 颜色 257
12.4.1 使用Color颜色 257
12.4.2 测试和设置颜色 258
12.5 Java 2D 260
12.5.1 绘制二次曲线 260
12.5.2 绘制三次曲线 261
12.5.3 旋转图形 262
12.6 小结 264
12.7 思考和练习 264
第13章 动画设计 265
13.1 Image类 266
13.2 多线程 268
13.2.1 线程状态 268
13.2.2 线程的其他几个概念 269
13.2.3 创建线程 270
13.2.4 监视器和同步 273
13.3 显示动画图片 277
13.4 小结 279
13.5 思考和练习 279
13.5.1 思考题 279
13.5.2 选择题 279
13.5.3 上机操作 280
第14章 JavaSound 281
14.1 检索和使用声音 282
14.1.1 简单的声音播放 282
14.1.2 把声音加载到AudioClip对象 283
14.2 播放单个文件 283
14.3 播放多个文件 286
14.4 小结 289
14.5 思考和练习 289
第15章 Java接口、异常和包 291
15.1 接口 292
15.1.1 使用接口 292
15.1.2 实现接口 293
15.1.3 接口实例 294
15.1.4 利用接口进行对象类的类型转换 297
15.2 异常问题 299
15.2.1 异常处理 299
15.2.2 throws与throw 300
15.2.3 try、catch和finally 300
15.2.4 未捕获异常 302
15.2.5 异常类型 303
15.3 包 308
15.3.1 定义包 308
15.3.2 CLASSPATH环境变量 309
15.3.3 import语句 310
15.3.4 使用包 311
15.4 小结 313
15.5 思考和练习 313
15.5.1 思考题 313
15.5.2 选择题 314
15.5.3 上机操作 315
第16章 使用Java流处理数据 317
16.1 流基础知识 318
16.2 FileInputStream类 320
16.3 FileOutputStream类 322
16.4 FileReader类和FileWriter类 324
16.5 使用对话框打开和保存文件 327
16.6 小结 332
16.7 思考和练习 332
16.7.1 选择题 332
16.7.2 上机操作 333
第17章 Internet通信 335
17.1 TCP/IP 336
17.2 InetAddress类 336
17.3 使用URL 337
17.4 套接字 340
17.4.1 Socket 类 340
17.4.2 ServerSocket类 341
17.5 多线程服务器程序 343
17.6 小结 353
17.7 思考和练习 354
17.7.1 选择题 354
17.7.2 上机操作 355
第18章 使用JavaBean 357
18.1 JavaBean简介 358
18.2 JavaBean的一个简单例子 358
18.3 JavaBean与JSP结合 360
18.4 JavaBean实例 361
18.4.1 编写JavaBean 361
18.4.2 编写数据输入页面 364
18.4.3 编写数据验证页面 365
18.4.4 编写重新输入的页面 366
18.4.5 编写验证成功的页面 368
18.4.6 系统运行效果 369
18.5 小结 370
18.6 思考和练习 371
第19章 数据库编程与数据结构 373
19.1 JDBC概念 374
19.1.1 JDBC的基本用途 374
19.1.2 JDBC-ODBC桥 375
19.2 创建ODBC数据源 375
19.3 连接数据库实例 377
19.4 数据结构 388
19.5 Java数据结构 389
19.5.1 Set接口及HashSet类 389
19.5.2 List接口及ArrayList、Vector类 390
19.5.3 Map接口及Hashtable类 393
19.5.4 堆栈 394
19.5.5 队列 396
19.6 小结 397
19.7 思考和练习 397
附录A Java网上资源 399
附录B Java与其他OOP语言的比较 403
附录C 思考和练习题参考答案 421
IV
IX