1 算法的设计与分析 1
1.1 算法的概念 1
1.2 算法的表示 2
1.2.1 赋值指令 2
1.2.2 输出指令 4
1.2.3 条件指令 4
1.2.4 循环指令 6
1.2.5 跟踪 9
1.2.6 4种指令的综合运用 11
1.2.7 算法的3种基本结构 13
1.2.8 算法的2种图形表示 14
1.3 几种典型的算法 18
1.3.1 直接计算 18
1.3.2 枚举 19
1.3.3 递推 21
1.3.4 迭代 22
1.3.5 递归 24
1.4 结构化设计方法 24
1.4.1 自顶向下设计 24
1.4.2 算法的表达风格 33
1.5 算法的分析 35
1.5.1 执行时间函数 36
1.5.2 执行时间分析 38
1.6 算法与程序的关系 41
习题 42
2 Java的基础知识 45
2.1 面向对象的初步概念与Java的特点 45
2.2 一个简单的Java程序 47
2.3.1 标识符 48
2.3 Java的词法 48
2.3.2 关键字 49
2.3.3 字面量 49
2.3.4 运算符 51
2.3.5 分隔符 51
2.3.6 注释 51
2.3.7 空格、制表符和换行符 52
2.4 数据类型与变量 52
2.4.1 整数类型 52
2.4.2 浮点数类型 60
2.4.3 字符类型 61
2.4.4 布尔类型 63
2.5 表达式 64
2.6 用于科学计算的方法 65
2.7 数据的输入与输出 67
习题 68
3 Java的流程控制 71
3.1 分支结构 71
3.1.1 if语句 71
3.1.2 条件运算符 73
3.1.3 switch语句 73
3.2 循环流程控制 76
3.2.1 while语句 76
3.2.2 do语句 78
3.2.3 for语句 79
3.3 转移语句 80
3.3.1 brcak语句 80
3.3.2 continue语句 82
3.4 控制结构的应用举例 83
习题 89
4.1.1 声明一维数组的变量 92
4.1 一维数组 92
4 Java的数组 92
4.1.2 一维数组的初始化 93
4.1.3 一维数组的使用 94
4.2 二维数组 98
4.2.1 声明二维数组的变量 98
4.2.2 二维数组的初始化 99
4.2.3 二维数组的使用 100
4.3 数组的顺序存储结构 103
习题 104
5 Java的类与对象 107
5.1 面向对象的概念 107
5.1.1 程序中使用对象的原因 107
5.1.2 程序中的对象和对象的归类 108
5.1.3 继承 109
5.2 类声明 110
5.1.4 消息 110
5.2.1 类声明的格式 111
5.2.2 修饰词 111
5.2.3 声明父类 112
5.2.4 列出要实现的接口 112
5.2.5 类体 112
5.3 成员变量 112
5.3.1 成员变量的声明 112
5.3.2 成员变量的使用 114
5.4 方法 114
5.4.1 方法声明的格式 114
5.4.2 静态方法与main方法 117
5.4.3 方法的调用 118
5.4.4 递归 124
5.4.5 方法重载 126
5.5 对象 127
5.5.1 对象的创建与引用 128
5.5.2 对象中实例变量的初始化-构造方法 130
5.5.3 访问对象的私有成员 132
5.5.4 对象作为方法的参数 134
5.5.5 对象作为方法的返回值 137
5.5.6 对象作为数组元素 138
5.5.7 对象作为类的实例变量-类的组合 139
5.5.8 this引用 141
5.5.9 无用对象的清除 143
5.5.10 应用举例 144
5.6 继承机制 151
5.6.1 创建子类的格式 151
5.6.2 子类对象的初始化 153
5.6.3 Java对继承的规定 155
5.6.4 访问权限修饰词protected 157
5.6.5 成员变量的隐藏(hide)与成员方法的重构(override) 158
5.6.6 方法的动态调用 162
5.6.7 子类对象的使用 163
5.6.8 抽象类 167
5.7 接口 169
5.7.1 接口声明 169
5.7.2 接口的实现 170
5.7.3 接口作为类型 171
5.7.4 接口的组合 174
5.8 包 175
5.8.1 包的创建 175
5.8.2 包的使用 177
5.8.3 标识符的作用域 179
习题 181
6.1.3 实用程序类库 189
6.1.2 输入/输出类库 189
6 Java库结构与部分语言类 189
6.1.1 语言类库 189
6.1 Java类库概述 189
6.1.4 小应用程序类库 190
6.1.5 抽象窗口工具类库 190
6.1.6 网络类库 190
6.2 字符串类 190
6.2.1 String类 190
6.2.2 StringBuffer类 196
6.2.3 串应用举例 197
6.3 Object类 203
6.4 System类 204
6.4.1 标准输入流与标准输出流 205
6.5 数据类型的包装类 207
6.4.2 System类中的常用方法 207
习题 209
7 Java的异常处理 211
7.1 异常的分类 211
7.1.1 Throwable类 212
7.1.2 Error类 213
7.1.3 RuntimeException类 213
7.1.4 检查型异常 215
7.1.5 自定义的异常类 216
7.2 抛出异常 217
7.2.1 声明方法可能抛出的异常 217
7.2.2 用throw语句抛出异常 217
7.3 处理异常 218
习题 225
8 Java的输入与输出 227
8.1 文件 228
8.2 抽象的字节流类InputStream与OutputStream 229
8.2.1 InputStream类 230
8.2.2 OutputStream类 231
8.3 字节文件流类FileInputStream与FileOutputStream 232
8.3.1 FileInputStream类 232
8.3.2 FileOutputStream类 232
8.3.3 文件流的使用举例 232
8.4 基本类型数据输入输出接口DataInput与DataOutput 234
8.4.1 DataOutput接口 235
8.4.2 DataInput接口 236
8.5 过滤流类FilterIntputStream与FilterOutputStream 237
8.6 基本类型数据I/O流类DataOutputStream与DataInputStream 238
8.6.1 DataOutputStream类 238
8.5.2 FilterInputStream类 238
8.5.1 FilterOutputStream类 238
8.6.2 DataInputStream类 240
8.6.3 从键盘输入基本类型的数据 241
8.7 字节缓冲流类BufferedInputStream与BufferedOutputStream 242
8.7.1 BufferedInputStream类 243
8.7.2 BufferedOutputStream类 243
8.8 随机访问文件类RandomAccessFile 244
8.9 以记录为单位对文件进行读写 245
8.10 字符流类Reader与Writer 248
8.10.1 Reader类 248
8.10.2 Writer类 250
8.11 BufferedReader类与BufferedWriter类 251
8.12 字符流到字节流的转换 252
8.12.1 InputStreamReader类 252
8.12.2 OutputStreamWriter类 253
8.13 PrintWriter类 254
8.12.3 FileReader类和FileWriter类 254
8.14 字符流的使用举例 256
习题 262
9 Java的多线程机制 264
9.1 线程的概念 264
9.2 创建线程 267
9.2.1 继承类Thread 268
9.2.2 实现接口Runnable 270
9.3 线程的管理 271
9.3.1 线程的状态及其控制 271
9.3.2 线程的优先级 274
9.3.3 线程的同步 276
9.3.4 线程组 282
习题 282
10.1 Internet上的WWW服务 284
10 Java与计算机网络 284
10.2 Java的小应用程序(applet) 286
10.2.1 小应用程序的结构 286
10.2.2 小应用程序功能上的局限 294
10.3 HTML简介 295
10.4 Java的网络功能 298
10.4.1 Java程序如何访问网络资源? 298
10.4.2 类URL 299
10.4.3 通过URL读取网上资源 301
习题 303
11 数据结构 304
11.1 动态数据结构 304
11.1.1 链表 304
11.1.2 堆栈 313
11.1.3 队列 316
11.2 查找 318
11.3 排序 321
11.3.1 选择排序 321
11.3.2 交换排序 328
11.3.3 插入排序 336
11.4 合并 338
习题 339
12 面向对象的软件工程 343
12.1 软件工程的概念 343
12.1.1 软件危机 343
12.1.2 软件生命期 344
12.1.3 软件的质量标准 347
12.2 面向对象的需求分析 348
12.2.1 识别对象 349
12.2.2 定义类的属性及实例的联系 353
12.2.3 识别结构 357
12.2.4 识别主题 360
12.2.5 识别服务 361
12.2.6 需求文档 368
12.3 面向对象的设计 370
12.3.1 软件工程原则 371
12.3.2 软件系统主体部分的设计 374
12.4 软件编码 377
12.5 软件测试 378
12.5.1 测试的目的与特性 379
12.5.2 测试方法 382
12.6 维护 385
习题 385
附录 387
类ReadNumber的源程序 387
参考文献 389