目录 1
第1章 面向对象程序设计概述 1
1.1 面向过程和面向对象 1
1.1.1 面向过程程序设计语言 2
1.1.2 面向对象程序设计语言 2
1.1.3 面向过程和面向对象程序设计 3
1.2 类 3
1.2.1 对象和类 4
1.2.2 类的声明 5
1.2.3 属性的声明 6
1.2.4 方法的声明 6
1.2.5 类的使用 7
1.2.6 构造器 8
1.2.7 信息隐藏和封装 12
1.2.8 【项目1-1】的参考程序 13
1.3 Java文件的组织 16
1.3.1 Java源文件结构 16
1.3.2 包(package) 16
1.3.3 文件组织层次 18
1.4 本章小结 19
习题 19
第2章 类的设计 21
2.1 类的继承 22
2.1.1 类继承的基本使用方法 22
2.1.3 访问控制 24
2.1.2 单继承 24
2.2 方法的重写 33
2.3 多态 35
2.3.1 编译时的多态性 35
2.3.2 运行时的多态性 36
2.4 重载 43
2.4.1 普通方法的重载 43
2.4.2 构造器的重载 46
2.5 【项目2-1】的参考程序 49
2.6 本章小结 52
习题 52
3.1 static和final关键字 55
第3章 类的高级特性 55
3.1.1 static关键字 56
3.1.2 【项目3-1】的参考程序——单子(Singleton)设计模式 58
3.1.3 静态块 60
3.1.4 final关键字 61
3.2 抽象类和接口 63
3.2.1 抽象类 63
3.2.2 接口 65
3.2.3 抽象类和接口的多态性 68
3.2.4 【项目3-2】——抽象类和接口的综合应用 69
3.3 内部类 70
习题 77
3.4 本章小结 77
第4章 异常处理 79
4.1 异常的概念及其分类 80
4.1.1 Java异常的概念 80
4.1.2 Java异常的分类 81
4.2 Java异常处理机制 82
4.2.1 使用try-catch-finally捕获异常 82
4.2.2 使用throws声明抛出异常 89
4.2.3 使用throw人工抛出异常 92
4.3 用户自定义异常 93
4.4 本章小结 94
习题 95
第5章 数组 97
5.1 数组的概念 98
5.2 一维数组的声明和内存分配 98
5.2.1 声明数组 99
5.2.2 内存分配 100
5.2.3 数组的初始化 100
5.3 二维数组 104
5.3.1 二维数组的声明和初始化 105
5.3.2 二维数组的引用 105
5.4 【项目5-1】的参考程序 106
5.5 本章小结 109
习题 109
第6章 图形用户界面(GUI)设计 111
6.1.1 java.awt包 112
6.1.2 javax.swing包 112
6.1 GUI概述 112
6.2 容器 113
6.2.1 Frame 113
6.2.2 Panel 113
6.3 Swing组件 113
6.3.1 JFrame 113
6.3.2 JPanel 114
6.3.3 标签 114
6.3.4 列表框的应用 114
6.4.1 FlowLayout布局管理器 119
6.4 容器布局 119
6.4.2 BorderLayout布局管理器 120
6.4.3 GridLayout布局管理器 120
6.5 事件处理概述 127
6.5.1 什么是事件 127
6.5.2 事件源与事件处理器 127
6.6 事件模型 127
6.6.1 分层模型(JDK 1.0) 127
6.6.2 委托模型(JDK 1.1) 128
6.7 事件类型 130
6.8 事件适配器 132
6.9 【项目6-1】的参考程序 138
习题 144
6.10 本章小结 144
第7章 I/O处理 146
7.1 标准输入输出 146
7.2 文件和文件I/O 148
7.2.1 文件类File 148
7.2.2 随机访问文件RandomAccessFile类 149
7.3 流 157
7.3.1 输入输出流概念 157
7.3.2 输入输出类 158
7.3.3 字节流InputStream和OutputStream类 158
7.3.4 字符流Reader和Writer类 160
习题 168
7.4 本章小结 168
第8章 多线程编程 169
8.1 线程概述 169
8.1.1 什么是线程 169
8.1.2 线程构成 170
8.2 创建线程 172
8.2.1 继承Thread类创建线程 172
8.2.2 实现Runnable接口创建线程 173
8.2.3 两种创建线程方法的优缺点 174
8.3 线程的基本控制 174
8.3.1 启动线程 175
8.3.2 延迟线程 176
8.3.3 停止线程 185
8.3.4 其他控制线程的方法 186
8.4 线程的同步 187
8.4.1 堆栈问题 187
8.4.2 多线程同步问题 191
8.4.3 多线程同步中的死锁问题 197
8.5 线程的交互 198
8.5.1 wait()和notify() 199
8.5.2 生产者—消费者问题 200
8.5.3 suspend()和resume()方法 204
8.6 本章小结 205
习题 205
9.1.1 任务概述 207
9.1 项目概要设计 207
第9章 网络编程 207
9.1.2 对功能需求的规定 208
9.1.3 网络中的数据 209
9.2 创建聊天室界面 209
9.2.1 创建工程 209
9.2.2 创建应用程序 210
9.2.3 布局聊天室界面 213
9.2.4 应用程序执行流程 215
9.3 客户端程序 216
9.3.1 Socket和数据流的创建和连接 216
9.3.2 添加发送昵称和性别的代码 218
9.3.4 添加发送聊天信息的代码 219
9.3.3 添加退出聊天室的代码 219
9.3.5 客户端接收服务器发送的数据 220
9.4 服务器端程序 222
9.4.1 服务器端程序分析与设计 222
9.4.2 服务器端程序 223
9.4.3 服务器端多线程 224
9.4.4 运行效果图 228
9.5 【项目9-1】的参考程序 230
9.5.1 客户端完整代码 230
9.5.2 服务器端完整代码 239
9.6 基础理论知识 242
9.6.1 TCP/IP四层结构模型 242
9.6.2 Socket通信模型 243
9.6.3 基于TCP的Socket通信 245
9.6.4 基于UDP的Socket通信 250
9.7 本章小结 254
习题 254
第10章 数据库编程 258
10.1 项目概要设计 258
10.1.1 任务概述 258
10.1.2 对功能需求的规定 259
10.2 使用JDBC建立与数据库的连接 260
10.2.1 JDBC的两个组成部分 260
10.2.2 使用JDBC建立与数据库的连接 260
10.2.3 JDBC API中的重要接口 261
10.3.1 创建工程 268
10.3 用户登录模块 268
10.3.2 创建应用程序 269
10.3.3 用户登录模块设计 272
10.3.4 应用程序执行流程 273
10.3.5 访问数据库 277
10.4 密码修改模块 279
10.4.1 创建密码修改窗体 279
10.4.2 密码修改程序 281
10.5 管理模块 283
10.5.1 创建管理模块窗体 283
10.5.2 员工查询、修改、删除程序 287
10.6.1 员工数据添加程序 290
10.6 添加员工数据模块 290
10.6.2 菜单事件处理程序 292
10.7 【项目10-1】的参考程序 293
10.7.1 主类完整代码 293
10.7.2 MainFrame类完整代码 295
10.7.3 ManageDialog类完整代码 303
10.7.4 LoginDialog类完整代码 313
10.7.5 changePasswordDialog类完整代码 318
10.8 本章小结 321
习题 321
附录A Java编程规范 324
参考文献 333