第1章 面向对象技术概述 1
1.1 面向对象技术的发展 1
1.2 面向对象方法与结构化方法的比较 2
1.2.1 现实问题分析 2
1.2.2 面向对象方法的优越性 3
1.2.3 面向对象与面向过程的不同 4
1.2.4 面向对象技术的基本观点 4
1.3 面向对象技术的基本概念 5
1.3.1 对象和类 5
1.3.2 事件和消息 7
1.4 面向对象技术的基本特征 8
1.4.1 抽象性 8
1.4.2 封装性 9
1.4.3 继承性 10
1.4.4 多态性 11
1.5 面向对象分析与设计简介 11
1.6 面向对象程序设计语言简介 12
1.7 面向对象的UML描述 15
本章小结 17
习题 17
第2章 Java语言基础 18
2.1 一个最简单的Java应用程序 18
2.1.1 问题的提出与分析 18
2.1.2 main方法的说明 19
2.1.3 程序的编译与运行 20
2.2 Java语言编程基础 20
2.2.1 问题的提出与分析 21
2.2.2 常量和变量 21
2.2.3 基本数据类型 23
2.2.4 运算符和表达式 24
2.2.5 类型转换 26
2.2.6 问题的解决 28
2.3 控制语句 29
2.3.1 问题的提出与分析 29
2.3.2 选择语句 29
2.3.3 循环语句 35
2.3.4 特殊的循环流程控制 38
2.4 类和对象的创建和使用 42
2.4.1 问题的提出与分析 42
2.4.2 类的定义 42
2.4.3 对象的生成 44
2.4.4 对象的使用 45
2.5 数组的使用 46
2.5.2 一维数组的创建 47
2.5.1 问题的提出与分析 47
2.5.3 一维数组的使用 48
2.5.4 二维数组的创建 49
2.5.5 二维数组的使用 50
2.6 字符串的使用 51
2.6.1 问题的提出与分析 51
2.6.2 String类的介绍 52
2.6.3 问题的解决 54
2.6.4 对象转化为字符串 56
2.7 包 57
2.7.1 什么是包 57
2.7.2 包的定义 58
2.7.3 包的引用 59
2.7.4 常用的Java标准包 59
2.8 应用举例 60
2.7.5 程序结构 60
本章小结 63
习题 63
第3章 对象与类 66
3.1 问题的提出与分析 66
3.2 发现对象和类 67
3.3 类的设计 68
3.3.1 成员变量和方法 68
3.3.2 方法的重载 74
3.3.3 类的访问控制 75
3.3.4 成员的访问控制 77
3.4 类的构造方法 80
3.4.1 成员初始化 80
3.4.2 构造方法的重载 81
3.4.3 默认构造方法 82
3.4.4 this关键字 83
3.4.5 对象的赋值和比较 84
3.5 静态成员 86
3.5.1 静态成员变量 87
3.5.2 静态成员方法 89
3.6 基本的输入输出 90
3.7 问题的解决 92
本章小结 99
习题 99
第4章 继承和多态 103
4.1 问题的提出与分析 103
4.2 类的继承 104
4.2.1 子类的定义 104
4.2.2 子类的构造方法 106
4.2.3 方法的覆盖和成员变量的隐藏 109
4.2.4 子类对象和父类对象间的转换 112
4.3.1 抽象类的定义 115
4.3 抽象类和接口 115
4.3.2 什么是接口 117
4.3.3 接口的定义 118
4.3.4 接口的实现 119
4.4 final类和final方法 122
4.5 多态 122
4.6 问题的实现 127
4.6.1 定义商品类层次 127
4.6.2 定义职工类层次 129
4.6.3 商品列表类的实现 131
4.6.4 顾客类层次的实现 133
4.6.5 销售事件类和销售事件列表类的实现 134
4.6.6 类层次功能的测试 136
本章小结 137
4.6.7 功能的进一步扩充 137
习题 138
第5章 输入输出流和异常 141
5.1 问题的提出与分析 141
5.2 输入输出流 143
5.2.1 流的概念 143
5.2.2 输入输出流类层次 144
5.2.3 字节流 151
5.2.4 字符流 157
5.3 异常 160
5.3.1 异常的概念 161
5.3.2 异常的类层次 162
5.3.3 捕获及处理异常 164
5.3.4 自定义异常 168
5.3.5 声明异常和抛出异常 169
5.4 问题的实现 170
本章小结 175
习题 175
第6章 图形用户界面设计 178
6.1 问题的提出与分析 178
6.2 创建图形用户界面 180
6.2.1 AWT与Swing概述 180
6.2.2 容器与组件 180
6.2.3 布局管理器 188
6.3 事件处理 190
6.3.1 JDK的事件处理模型 190
6.3.2 事件监听器 191
6.3.3 事件适配器 194
6.3.4 内部类 194
6.4 绘制图形 195
6.5 问题的实现 196
6.5.1 界面框架的实现 197
6.5.2 鼠标事件的响应及图形画笔粗细设置 202
6.5.3 图形的保存 205
本章小结 207
习题 208
第7章 网络编程 211
7.1 问题的提出与分析 211
7.2 网络的基本概念 212
7.2.1 TCP/IP简介 212
7.2.2 Socket接口 214
7.2.3 客户端/服务器模式 215
7.3 流套接字编程 215
7.3.1 服务器端程序的实现 216
7.3.2 客户端程序的实现 219
7.3.3 编程模型的总结 221
7.4 数据报套接字技术 222
7.4.1 服务器端程序的实现 223
7.4.2 客户端程序的实现 225
7.4.3 编程模型的总结 226
7.5 线程 227
7.5.1 线程的概念 227
7.5.2 线程的创建 228
7.5.3 线程的控制 230
7.5.4 流套接字多线程服务器的实现 231
7.5.5 数据报套接字多线程服务器的实现 233
7.5.6 线程的同步 235
本章小结 238
习题 238
8.1 问题的提出与分析 240
第8章 Applet 240
8.2 Applet简介 241
8.2.1 什么是Applet 241
8.2.2 一个简单的Applet程序 242
8.3 Applet的生命周期 244
8.4 其他常用的方法 247
8.5 Applet的运行 251
8.5.1 HTML与Applet 251
8.5.2 在浏览器中运行Applet程序 252
8.5.3 在appletviewer中运行Applet程序 253
8.5.4 运行Applet的安全性 254
8.6 问题的实现 254
8.6.1 定义Applet的派生类 254
8.6.2 实现Applet周期中的方法 255
8.6.3 线程的实现 257
8.6.4 paint方法的实现 258
8.6.5 鼠标事件处理 259
习题 262
本章小结 262
第9章 JDBC与数据库 265
9.1 问题的提出与分析 265
9.2 数据库基础 266
9.2.1 数据库简介 267
9.2.2 关系数据库 267
9.2.3 SQL简介 268
9.3 JDBC简介 270
9.3.1 引入JDBC的背景及其驱动模型 271
9.3.2 通过JDBC连接数据库 272
9.4.1 建立数据库 275
9.4.2 连接数据库 275
9.4 问题的实现 275
9.4.3 数据库操作 277
本章小结 285
习题 285
第10章 常用数据结构的实现 287
10.1 数据结构简介 287
10.2 单链表 287
10.2.1 单链表的实现 288
10.2.2 单链表的应用(约瑟夫问题的求解) 294
10.3 栈 295
10.3.1 栈的实现 296
10.3.2 栈的应用(数的进制的转换) 297
10.4 队列 298
10.4.1 队列的实现 298
10.4.2 队列的应用(打印杨辉三角形) 299
习题 301
本章小结 301
附录A Java语法摘要 302
A.1 词法规则 302
A.2 数据类型 304
A.3 运算符 305
A.4 表达式 306
A.5 语句 307
A.6 与OOP有关的关键字 309
A.7 与OOP有关的语法 310
A.8 JDK 1.5增强语法 314
A.9 异常 318
附录B Java标准包介绍 320
B.1 包的定义 320
B.2 包的引用 320
B.3 标准包列表 321
B.4 常用包的介绍 322
附录C JDK使用介绍 332
C.1 安装与设置 332
C.2 JDK实用程序工具库简介 333
C.3 编译 333
C.4 运行Application 335
C.5 运行Applet 336
附录D 常用开发工具介绍 338
D.1 Eclipse简介 338
D.2 JBuilder简介 343
附录E UML简介 351
E.1 UML概述 351
E.2 模型元素的图形表示及其解释 352
E.3 常用的UML图 358
E.4 UML中的四种关系 360
参考文献 362