第1部分 Java应用系统开发基础 3
第1章 面向对象系统开发概述 3
1.1软件生命周期 3
1.1.1需求获取与分析 4
1.1.2软件设计 4
1.1.3实现 5
1.1.4集成和部署 6
1.1.5运行和维护 6
1.2软件开发方法 7
1.2.1传统开发方法 7
1.2.2面向对象开发方法 8
1.2.3基于构件的开发方法 10
1.3面向对象及构件开发中的基本概念 11
1.3.1面向对象 11
1.3.2类与对象 11
1.3.3消息通信与对象交互 13
1.3.4封装与信息隐藏 13
1.3.5服务与接口 14
1.3.6继承与多态 14
1.3.7构件 15
1.3.8包 16
本章小结 16
习题 17
第2章 Java程序的运行与开发环境 18
2.1 Java程序的运行环境 18
2.2 Java程序的编辑、编译及运行 20
2.3 Java平台体系 21
2.4集成开发环境简介 24
2.5 Eclipse安装与环境介绍 25
2.5.1 Eclipse的体系结构 25
2.5.2 Eclipse在Windows下的安装 26
2.5.3 Eclipse工作台 27
2.6 Eclipse环境下的项目开发过程 28
2.6.1新建Java项目 28
2.6.2创建Java程序 31
2.6.3代码输入支持功能 32
2.6.4执行Java程序 34
本章小结 37
习题 37
第3章 Java使用初步 38
3.1 Java应用程序的组成元素 38
3.2基本数据类型与表达式 41
3.2.1基本数据类型 41
3.2.2变量与常量 41
3.2.3表达式 43
3.2.4类型转换 46
3.3控制流程语句 47
3.3.1选择结构 47
3.3.2循环结构 48
3.4 Java标准类实例 51
3.4.1 Math类 52
3.4.2 String类 53
3.4.3 System类 55
3.4.4包裹类 56
3.4.5 JOptionPane类 57
3.4.6 Date类和SimpleDateFormat类 59
本章小结 61
习题 61
第4章 自定义类 63
4.1类的声明与使用 63
4.1.1类的声明 63
4.1.2对象的创建与引用 64
4.2属性成员 67
4.2.1属性成员声明 67
4.2.2实例属性与类属性 67
4.3方法成员 69
4.3.1方法成员声明 69
4.3.2实例方法与类方法 70
4.3.3带参数的方法 71
4.3.4构造方法 73
4.4其他常用方法 75
4.4.1 toString()方法 75
4.4.2 equals()方法 76
4.5内部类 78
4.6将类组织成包 78
4.7使用Javadoc命令生成类文档 80
本章小结 82
习题 82
第5章 数组及其应用 84
5.1数组的概念 84
5.2对象数组 87
5.2.1用数组存储对象 87
5.2.2在方法中返回对象 92
5.2.3在方法中返回对象数组 93
5.3二维数组 94
5.4数组的应用 96
5.4.1查找 97
5.4.2增加及删除元素 97
5.4.3排序 98
5.4.4在已排序的数组中查找 99
本章小结 102
习题 102
第2部分 基于UML的系统分析与设计 107
第6章 基于UML的系统分析 107
6.1统一建模语言UML 107
6.1.1 UML的产生和发展 107
6.1.2 UML的特点 107
6.2 UML模型简介 108
6.2.1用例图 109
6.2.2类图 110
6.2.3顺序图 113
6.2.4通信图 115
6.2.5状态图 115
6.2.6构件图 116
6.2.7部署图 116
6.3实例研究 117
6.3.1校内书店管理系统业务简介 117
6.3.2用例建模 118
6.3.3对象建模 121
6.3.4动态建模 121
本章小结 122
习题 123
第7章 面向对象设计 124
7.1软件体系结构及其风格 124
7.1.1软件体系结构的概念 124
7.1.2经典的体系结构风格 125
7.1.3 C/S与B/S体系结构风格 127
7.1.4分布式对象体系结构风格 129
7.2子系统分解 130
7.2.1水平方向的分解 130
7.2.2垂直方向的分解 131
7.3问题域设计 132
7.3.1对分析类图进行调整与细化 132
7.3.2将对象分组归入子系统 133
7.3.3增加控制类 134
7.4界面层设计 135
7.4.1界面设计方法和原则 135
7.4.2书店管理系统界面设计方案 136
7.5数据层设计 138
7.5.1数据库设计 138
7.5.2数据访问类设计 141
本章小结 141
习题 142
第3部分 业务逻辑层开发 145
第8章 编写问题域类 145
8.1定义问题域类 145
8.1.1定义并测试Book类 145
8.1.2定义并测试BookStore类 149
8.1.3使用静态变量和静态方法 150
8.1.4编写自定义方法 151
8.1.5格式化输出 151
8.1.6重载方法 152
8.2实现关联关系 153
8.2.1校内书店管理系统中的关联关系 153
8.2.2实现BookStore与Bookshelf之间的关联关系 155
8.3异常及其处理 157
8.3.1异常的概念 157
8.3.2异常处理 159
8.3.3生成异常对象 161
8.3.4 telephone的数据验证 161
本章小结 163
习题 163
第9章 继承与多态 165
9.1类的继承 165
9.1.1私有属性和方法的继承 165
9.1.2隐藏和覆盖 166
9.1.3有继承时的构造方法 168
9.2 Object类 170
9.3定义Customer类及其子类 170
9.3.1定义Customer类并测试 170
9.3.2定义Customer类的子类并测试 172
9.4重写超类方法 174
9.4.1添加和重写toString()方法 174
9.4.2重写和调用超类方法 175
9.5塑型与多态 176
9.5.1塑型 176
9.5.2多态 177
本章小结 180
习题 180
第10章 抽象类与终结类 181
10.1抽象类与抽象方法 181
10.1.1抽象类的定义 181
10.1.2抽象方法 182
10.2终结类与终结方法 183
10.2.1终结类 183
10.2.2终结方法 184
10.3定义Lease类及其子类 184
10.3.1定义初始的Lease类 185
10.3.2处理日期 186
10.3.3向Lease类中添加抽象方法 188
10.3.4定义Lease的子类BookLease 188
10.3.5定义Lease的子类DailyLease 189
10.3.6测试Book Lease类和DailyLease类 190
10.4声明及使用自定义异常 191
10.4.1定义DateI nputException类 191
10.4.2抛出自定义异常 191
10.4.3创建多个日租约对象 192
本章小结 193
习题 193
第11章 接口及其应用 194
11.1接口 194
11.1.1接口的概念 194
11.1.2定义接口 195
11.1.3实现接口 196
11.1.4接口与抽象类的区别 197
11.2 Java集合框架 198
11.2.1列表的定义与创建 199
11.2.2列表的标准方法 199
11.2.3 Enumeration及Iterator类 201
11.2.4泛型及其应用 204
11.3面向接口编程 209
11.3.1面向接口编程的概念 209
11.3.2面向接口编程的优点 210
11.3.3分析抽象Bookshelf的接口IContainable 211
11.3.4使用IContainable接口 215
本章小结 216
习题 217
第12章 构件及其应用 218
12.1构件的类型与特性 218
12.1.1构件的类型 218
12.1.2构件的特性 219
12.2构件模型 219
12.2.1构件模型的组成 220
12.2.2常见的构件模型 220
12.3构件设计 222
12.3.1构件设计原则 222
12.3.2构件设计的主要任务 223
12.3.3校内书店管理系统中的可复用构件设计 223
12.4构件实现 225
12.4.1统计样本接口实现 225
12.4.2统计构件的实现 226
12.4.3报表构件的实现 228
12.4.4综合测试 231
12.4.5构件打包 233
本章小结 235
习题 236
第4部分 界面层与数据层开发 239
第13章 图形用户界面与事件处理 239
13.1 Java的GUI类简介 239
13.1.1 AWT类简介 240
13.1.2 Swing类简介 242
13.2 Java事件处理 244
13.2.1基本概念 244
13.2.2委托事件处理机制简介 244
13.2.3实现监听器接口的方法 246
13.2.4扩充适配器类 249
13.2.5使用多个GUI组件 250
13.3布局管理器 251
13.3.1 FlowLayout 252
13.3.2 BorderLayout 253
13.3.3 GridLayout 254
13.3.4 GridBagLayout 255
13.3.5 CardLayout 257
13.4 Swing组件的使用 259
13.4.1标签类 259
13.4.2滚动框 261
13.4.3菜单 262
13.4.4工具栏 264
13.4.5按钮类 265
13.4.6组合框 269
13.4.7文本 271
13.4.8二维表 274
本章小结 277
习题 277
第14章 界面层开发 278
14.1编写GUI类查找图书 278
14.2实现图书管理界面 283
14.3在单独窗口中添加新图书 288
14.3.1创建添加新图书的操作界面 288
14.3.2应用单例模式 291
14.4添加顾客 292
本章小结 298
习题 298
第15章 实现多个窗口之间的导航 299
15.1实现系统主界面 299
15.2导航多个窗口 302
15.2.1模仿图书数据库 302
15.2.2从系统主界面导航到图书管理界面 304
15.2.3从图书管理界面导航到图书查询界面 306
15.2.4从图书管理界面导航到图书增加界面 307
15.2.5从图书增加界面返回到图书管理界面 309
15.3实现租书管理子系统 311
15.3.1实现租书管理界面 311
15.3.2实现租书功能 314
15.3.3在租书管理界面中显示顾客信息 320
15.3.4实现还书功能 322
本章小结 324
习题 324
第16章 数据层开发 326
16.1对象持久性简介 326
16.2设计数据存取类 326
16.3问题域类与数据存取类通信 327
16.4文件的应用 328
16.4.1 Java输入/输出流 329
16.4.2使用顺序文件实现持久性 330
16.4.3测试BookDA类 333
16.4.4使用随机存取文件实现持久性 334
16.4.5使用对象串行化实现持久性 335
16.5数据库的应用 337
16.5.1建立ODBC数据源 338
16.5.2结构化查询语言 339
16.5.3 java.sql程序包 341
16.5.4使用数据库实现持久性 341
本章小结 345
习题 345
第5部分 多线程与Web应用程序开发 349
第17章 多线程 349
17.1线程的概念 349
17.2线程的创建和启动 350
17.2.1扩展java.lang.Thread类 350
17.2.2实现Runnable接口 353
17.3线程的生命周期及状态 355
17.4线程的优先级及调度 357
17.5多线程的互斥与同步 361
17.5.1线程的同步 361
17.5.2线程通信 365
17.5.3死锁问题 367
17.6后台线程与定时器 368
本章小结 370
习题 370
第18章 Web应用程序开发基础 372
18.1网络通信技术 372
18.1.1网络通信协议 372
18.1.2 Java的网络功能 373
18.1.3 Java EE通信技术 375
18.2 Web客户端开发技术 376
18.2.1 HTML简介 376
18.2.2 JavaScript技术 378
18.2.3 Java Applet技术 379
18.3 Tomcat应用服务器安装与配置 381
18.3.1在Windows上安装Tomcat 381
18.3.2 Tomcat服务器的配置与使用 382
18.4 Servlet技术 384
18.4.1 Servlet的基本结构 384
18.4.2 Servlet的生命周期 385
18.4.3 Servlet的创建、编译及运行 387
18.5 JSP技术 389
18.5.1 JSP的基本运行原理 389
18.5.2 JSP的指令与基本语法 389
18.5.3 JSP的内置对象 391
18.5.4 JSP动作 392
18.5.5 JSP程序的创建及运行 394
本章小结 394
习题 395
第19章 Java Web应用程序开发 396
19.1基于Java技术的B/S架构 396
19.2 Java Web集成开发环境的配置 397
19.2.1配置Eclipse开发环境 398
19.2.2安装Tomcat插件 398
19.3 Web项目的创建与配置 399
19.3.1 hello项目的创建 399
19.3.2编译及运行环境的配置 400
19.3.3新建JSP页面 402
19.3.4运行Web项目 403
19.4基于Web实现图书管理功能 404
19.4.1模型层 404
19.4.2控制层 405
19.4.3表现层 408
19.4.4查看运行结果 410
19.5 Web应用程序的发布 412
本章小结 412
习题 412
附录A 网上顾客查询子系统 414
A.1网上顾客查询子系统简介 414
A.2模型层 415
A.2.1创建实体类 415
A.2.2创建数据访问类 416
A.3控制层 420
A.4表现层 425
A.5运行效果 444
参考文献 447