《Java 程序设计实用教程》是2010年4月人民邮电出版社在出版的书籍,作者是耿祥义、张跃平。本书注重结合实例,循序渐进地向读者介绍了Java语言的重要知识点,特别强调Java面向对象编程的思想。
Java语言具有面向对象、与平台无关、安全、稳定、多线程等优良特性,是目前软件设计中极为强大的编程语言。全书分为16章,分别讲解了简单数据类型、运算符、表达式和语句、类与对象、子类与继承、接口与多态、数组与枚举、内部类与异常类、常用实用类、Java输入输出流、JDBC数据库操作、泛型与集合框架、Java多线程机制、Java网络基础、图形用户界面设计、Java Applet程序等内容。
本书适合作为高等院校计算机相关专业“Java语言程序设计”以及“面向对象语言”课程的教材。
目录
- 第1章 初识Java 1
- 1.1 Java诞生的原因 2
- 1.2 Java的地位 4
- 1.2.1 网络地位 4
- 1.2.2 语言地位 4
- 1.2.3 需求地位 4
- 1.3 安装JDK 4
- 1.3.1 3种平台简介 4
- 1.3.2 安装Java SE平台 5
- 1.4 Java程序的开发步骤 7
- 1.5 一个简单的Java应用程序 8
- 1.5.1 编写源文件 8
- 1.5.2 编译 9
- 1.5.3 运行 10
- 1.6 Java的语言特点 10
- 1.6.1 简单 10
- 1.6.2 面向对象 11
- 1.6.3 多线程 11
- 1.6.4 安全 11
- 1.6.5 动态 11
- 习题1 11
- 第2章 初识对象和简单数据类型 13
- 2.1 问题的提出 13
- 2.2 简单的矩形类 14
- 2.3 使用矩形类创建对象 15
- 2.3.1 用类声明对象 15
- 2.3.2 为对象分配变量 15
- 2.3.3 使用对象 16
- 2.4 在Java应用程序中使用矩形对象 16
- 2.5 Java应用程序的基本结构 17
- 2.6 一个源文件中编写多个类 19
- 2.7 标识符与关键字 20
- 2.7.1 标识符 20
- 2.7.2 关键字 20
- 2.8 简单数据类型 20
- 2.8.1 逻辑类型 21
- 2.8.2 整数类型 21
- 2.8.3 字符类型 22
- 2.8.4 浮点类型 23
- 2.9 简单数据类型的级别与数据转换 24
- 2.10 从命令行窗口输入、输出数据 25
- 2.10.1 输入基本型数据 25
- 2.10.2 输出基本型数据 26
- 2.11 编成风格 27
- 2.11.1 Allmans风格 27
- 2.11.2 Kernighan风格 27
- 2.11.3 注释 28
- 习题2 28
- 第3章 运算符、表达式和语句 30
- 3.1 运算符与表达式 30
- 3.1.1 算术运算符与算术表达式 30
- 3.1.2 自增,自减运算符 30
- 3.1.3 算术混合运算的精度 31
- 3.1.4 关系运算符与关系表达式 31
- 3.1.5 逻辑运算符与逻辑表达式 31
- 3.1.6 赋值运算符与赋值表达式 32
- 3.1.7 位运算符 32
- 3.1.8 instanceof运算符 33
- 3.1.9 运算符综述 33
- 3.2 语句概述 34
- 3.3 if条件分支语句 34
- 3.3.1 if语句 34
- 3.3.2 if-else语句 35
- 3.3.3 if-else if-else语句 35
- 3.4 switch开关语句 37
- 3.5 循环语句 39
- 3.5.1 for循环语句 39
- 3.5.2 while循环 40
- 3.5.3 do-while循环 40
- 3.6 break和continue语句 41
- 习题3 42
- 第4章 类与对象 44
- 4.1 从抽象到类 44
- 4.2 类 45
- 4.2.1 类声明 45
- 4.2.2 类体 45
- 4.2.3 成员变量 46
- 4.2.4 方法 47
- 4.2.5 需要注意的问题 49
- 4.2.6 类的UML类图 49
- 4.3 构造方法与对象的创建 49
- 4.3.1 构造方法 50
- 4.3.2 创建对象 50
- 4.3.3 使用对象 52
- 4.3.4 对象的引用和实体 53
- 4.4 参数传值 55
- 4.4.1 传值机制 55
- 4.4.2 基本数据类型参数的传值 55
- 4.4.3 引用类型参数的传值 56
- 4.4.4 可变参数 58
- 4.5 有理数的类封装 59
- 4.6 对象的组合 62
- 4.6.1 圆锥体 62
- 4.6.2 关联关系和依赖关系的UML图 63
- 4.7 实例成员与类成员 64
- 4.7.1 实例变量和类变量的声明 64
- 4.7.2 实例变量和类变量的区别 64
- 4.7.3 实例方法和类方法的定义 66
- 4.7.4 实例方法和类方法的区别 66
- 4.8 方法重载与多态 67
- 4.9 this关键字 69
- 4.10 包 69
- 4.10.1 包语句 70
- 4.10.2 有包名的类的存储目录 70
- 4.10.3 运行有包名的主类 70
- 4.11 import语句 72
- 4.11.1 引入类库中的类 72
- 4.11.2 引入自定义包中的类 73
- 4.11.3 使用无包名的类 75
- 4.11.4 避免类名混淆 75
- 4.12 访问权限 76
- 4.12.1 何谓访问权限 76
- 4.12.2 私有变量和私有方法 76
- 4.12.3 共有变量和共有方法 77
- 4.12.4 友好变量和友好方法 78
- 4.12.5 受保护的成员变量和方法 78
- 4.12.6 public类与友好类 79
- 4.13 基本类型的类包装 79
- 4.13.1 Double和Float类 79
- 4.13.2 Byte、Short、Integer、Long类 80
- 4.13.3 Character类 80
- 4.14 反编译和文档生成器 80
- 4.14.1 javap反编译 80
- 4.14.2 javadoc制作文档 80
- 习题4 81
- 第5章 子类与继承 83
- 5.1 子类与父类 83
- 5.2 子类的继承性 84
- 5.2.1 子类和父类在同一包中的继承性 84
- 5.2.2 子类和父类不在同一包中的继承性 86
- 5.2.3 protected的进一步说明 86
- 5.2.4 继承关系的UML图 86
- 5.2.5 关于instanceof运算符 86
- 5.3 子类对象的特点 87
- 5.4 成员变量的隐藏和方法重写 88
- 5.4.1 成员变量的隐藏 88
- 5.4.2 方法重写 89
- 5.5 super关键字 94
- 5.5.1 用super操作被隐藏的成员变量和方法 94
- 5.5.2 使用super调用父类的构造方法 95
- 5.6 final关键字 97
- 5.6.1 final类 97
- 5.6.2 final方法 97
- 5.6.3 常量 97
- 5.7 对象的上转型对象 98
- 5.8 继承与多态 100
- 5.9 abstract类和abstract方法 101
- 5.10 面向抽象编程 102
- 5.11 开-闭原则 104
- 习题5 107
- 第6章 接口与多态 109
- 6.1 接口 109
- 6.1.1 接口的声明与使用 109
- 6.1.2 理解接口 112
- 6.1.3 接口的UML图 113
- 6.2 接口回调 114
- 6.2.1 接口变量与回调机制 114
- 6.2.2 接口的多态性 115
- 6.2.3 abstract类与接口的比较 116
- 6.3 面向接口编程 116
- 习题6 119
- 第7章 数组与枚举 121
- 7.1 创建数组 121
- 7.1.1 声明数组 121
- 7.1.2 为数组分配元素 122
- 7.1.3 数组元素的使用 123
- 7.1.4 length的使用 123
- 7.1.5 数组的初始化 124
- 7.1.6 数组的引用 124
- 7.2 遍历数组 125
- 7.2.1 基于循环语句的遍历 125
- 7.2.2 使用toString()方法遍历数组 126
- 7.3 复制数组 127
- 7.3.1 arraycopy方法 127
- 7.3.2 copyOf和copyOfRange()方法 128
- 7.4 排序与二分查找 129
- 7.5 枚举 130
- 7.5.1 枚举类型的定义 130
- 7.5.2 枚举变量 130
- 7.5.3 枚举类型与for语句和switch语句 131
- 习题7 132
- 第8章 内部类与异常类 134
- 8.1 内部类 134
- 8.2 匿名类 135
- 8.2.1 和子类有关的匿名类 135
- 8.2.2 和接口有关的匿名类 137
- 8.3 异常类 138
- 8.3.1 try~catch语句 138
- 8.3.2 自定义异常类 139
- 8.4 断言 141
- 习题8 142
- 第9章 常用实用类 144
- 9.1 String类 144
- 9.1.1 构造字符串对象 144
- 9.1.2 String 类的常用方法 145
- 9.1.3 字符串与基本数据的相互转化 149
- 9.1.4 对象的字符串表示 150
- 9.1.5 字符串与字符、字节数组 151
- 9.1.6 正则表达式及字符串的替换与分解 153
- 9.2 StringBuffer类 157
- 9.2.1 StringBuffer对象的创建 157
- 9.2.2 StringBuffer类的常用方法 158
- 9.3 StringTokenizer类 159
- 9.4 Date类 160
- 9.4.1 构造Date对象 160
- 9.4.2 日期格式化 161
- 9.5 Calendar类 163
- 9.6 Math类和BigInteger类 165
- 9.6.1 Math类 165
- 9.6.2 BigInteger类 166
- 9.7 DecimalFormat类 167
- 9.7.1 格式化数字 167
- 9.7.2 将格式化字符串转化为数字 168
- 9.8 Pattern类与Match类 169
- 9.8.1 模式对象 170
- 9.8.2 匹配对象 170
- 9.9 Scanner类 171
- 9.10 System类 173
- 习题9 174
- 第10章 输入、输出流 176
- 10.1 File类 177
- 10.1.1 文件的属性 177
- 10.1.2 目录 178
- 10.1.3 文件的创建与删除 179
- 10.1.4 运行可执行文件 179
- 10.2 字节流与字符流 180
- 10.2.1 InputStream类与OutputSream类 180
- 10.2.2 Reader类与Writer类 181
- 10.2.3 关闭流 181
- 10.3 文件字节流 181
- 10.3.1 文件字节输入流 182
- 10.3.2 文件字节输出流 183
- 10.4 文件字符流 183
- 10.5 缓冲流 184
- 10.6 随机流 186
- 10.7 数组流 189
- 10.8 数据流 190
- 10.9 对象流 193
- 10.10 序列化与对象克隆 195
- 10.11 文件锁 196
- 10.12 使用Scanner解析文件 197
- 10.13 使用Console流读取密码 199
- 习题10 200
- 第11章 JDBC数据库操作 202
- 11.1 Microsoft Access数据库管理系统 202
- 11.1.1 建立数据库 203
- 11.1.2 创建表 203
- 11.2 JDBC 204
- 11.3 连接数据库 204
- 11.3.1 连接方式的选择 204
- 11.3.2 建立JDBC-ODBC桥接器 205
- 11.3.3 ODBC数据源 205
- 11.3.4 建立连接 206
- 11.4 查询操作 208
- 11.4.1 顺序查询 209
- 11.4.2 控制游标 211
- 11.4.3 条件查询 213
- 11.4.4 排序查询 213
- 11.4.5 模糊查询 214
- 11.5 更新、添加与删除操作 215
- 11.6 使用预处理语句 216
- 11.6.1 预处理语句优点 216
- 11.6.2 使用通配符 218
- 11.7 事务 221
- 11.7.1 事务及处理 221
- 11.7.2 JDBC事务处理步骤 221
- 11.8 批处理 222
- 11.9 CachedRowSetImpl类 223
- 习题11 226
- 第12章 泛型与集合框架 227
- 12.1 泛型 227
- 12.1.1 泛型类 228
- 12.1.2 泛型类声明对象 228
- 12.1.3 泛型接口 229
- 12.1.4 泛型的目的 230
- 12.2 链表 230
- 12.2.1 LinkedList<E>泛型类 230
- 12.2.2 常用方法 231
- 12.2.3 遍历链表 231
- 12.2.4 排序与查找 233
- 12.2.5 洗牌与旋转 235
- 12.3 堆栈 237
- 12.4 散列映射 238
- 12.4.1 HashMap<K,V>泛型类 238
- 12.4.2 常用方法 239
- 12.4.3 遍历散列映射 239
- 12.4.4 基于散列映射的查询 239
- 12.5 树集 241
- 12.5.1 TreeSet<E>泛型类 241
- 12.5.2 节点的大小关系 241
- 12.5.3 TreeSet类的常用方法 241
- 12.6 树映射 243
- 12.7 自动装箱与拆箱 244
- 习题12 245
- 第13章 Java多线程机制 246
- 13.1 进程与线程 246
- 13.1.1 操作系统与进程 246
- 13.1.2 进程与线程 247
- 13.2 Java中的线程 247
- 13.2.1 Java的多线程机制 247
- 13.2.2 线程的状态与生命周期 248
- 13.2.3 线程调度与优先级 251
- 13.3 Thread的子类创建线程 251
- 13.4 使用Runnable接口 253
- 13.4.1 Runnable接口与目标对象 253
- 13.4.2 关于run方法启动的次数 254
- 13.4.3 在线程中启动其他线程 255
- 13.5 线程的常用方法 256
- 13.6 线程同步 259
- 13.6.1 什么是线程同步 259
- 13.6.2 通过同步避免切换的影响 261
- 13.7 在同步方法中使用wait()、notify()和notifyAll()方法 263
- 13.8 线程联合 264
- 习题13 265
- 第14章 Java网络编程 268
- 14.1 URL类 268
- 14.1.1 URL的构造方法 269
- 14.1.2 读取URL中的资源 269
- 14.2 InetAdress类 270
- 14.2.1 地址的表示 270
- 14.2.2 获取地址 271
- 14.3 套接字 271
- 14.3.1 套接字 271
- 14.3.2 客户端套接字 272
- 14.3.3 ServerSocket对象与服务器端套接字 272
- 14.3.4 使用多线程技术 275
- 14.4 UDP数据包 278
- 14.4.1 发送数据包 279
- 14.4.2 接收数据包 279
- 14.5 广播数据包 282
- 14.6 Java远程调用 284
- 14.6.1 远程对象及其代理 285
- 14.6.2 RMI的设计细节 285
- 习题14 288
- 第15章 图形用户界面设计 289
- 15.1 Java Swing概述 289
- 15.2 窗口 290
- 15.2.1 JFrame常用方法 291
- 15.2.2 菜单条、菜单、菜单项 292
- 15.3 常用组件与布局 293
- 15.3.1 常用组件 293
- 15.3.2 常用容器 295
- 15.3.3 常用布局 296
- 15.4 处理事件 301
- 15.4.1 事件处理模式 301
- 15.4.2 ActionEvent事件 302
- 15.4.3 ItemEvent事件 306
- 15.4.4 DocumentEvent事件 308
- 15.4.5 MouseEvent事件 310
- 15.4.6 焦点事件 314
- 15.4.7 键盘事件 314
- 15.4.8 匿名类实例或窗口做监视器 317
- 15.4.9 事件总结 319
- 15.5 使用MVC结构 319
- 15.6 对话框 322
- 15.6.1 消息对话框 322
- 15.6.2 输入对话框 323
- 15.6.3 确认对话框 325
- 15.6.4 颜色对话框 326
- 15.6.5 文件对话框 327
- 15.6.6 自定义对话框 330
- 15.7 发布GUI程序 331
- 习题15 332
- 第16章 Java Applet程序 333
- 16.1 Java Applet的结构 333
- 16.2 Java Applet的运行原理 334
- 16.3 在Java Applet中播放声音 336
- 16.4 网页传值 338
- 习题16 338