第1章 Java概述 1
【案例分析】 1
1.1 Java的崛起 2
1.2 Java与C++、 C 3
1.2.1 Java和C+ 3
1.2.2 Java与C 3
1.3 Java语言的特点 5
1.4 Java程序的类型及其不同的编程模式 6
1.5 Java程序开发过程 7
1.6 Java开发工具入门 13
1.6.1 JDK的下载、安装 13
1.6.2配置环境变量 15
1.6.3 JDK开发工具简介 17
1.6.4 Java程序开发步骤小结 17
习题1 17
问题探究1 18
第2章 Java语言基础 19
【案例分析】 19
2.1标识符、关键字和分隔符 19
2.1.1标识符和关键字 19
2.1.2分隔符 20
2.2数据类型 21
2.2.1基本数据类型 22
2.2.2变量 23
2.3运算符与表达式 25
2.3.1算术运算符 25
2.3.2赋值运算符 26
2.3.3关系运算符 26
2.3.4逻辑运算符 27
2.3.5条件运算符 28
2.3.6其他运算符 28
2.3.7运算符的优先级 28
2.4字符串 29
2.4.1创建String对象 29
2.4.2创建StringBuffer对象 30
2.5案例实现 31
习题2 32
问题探究2 33
第3章Java输入/输出 34
【案例分析】 34
3.1标准输入/输出方法 34
3.1.1标准输出方法 35
3.1.2 Scanner键盘输入类 36
3.1.3 read方法的使用 38
3.2命令行参数输入法的应用 39
3.3流式交互输入/输出的应用 40
3.3.1应用举例 40
3.3.2 Java I/O基本模型 41
3.4文件数据的读/写 42
3.5 JOptionPane对话框输入法 45
3.6案例实现 46
习题3 47
问题探究3 47
第4章 程序流程控制结构和方法 49
【案例分析】 49
4.1语句和程序流程控制结构 49
4.2选择结构 50
4.2.1选择语句 50
4.2.2多选择结构switch语句 53
4.3循环结构 57
4.3.1 3种循环语句 57
4.3.2循环程序结构小结 60
4.3.3循环嵌套和continue、 break语句 61
4.4算法设计 63
4.4.1迭代算法 64
4.4.2穷举算法 64
4.4.3递归算法 65
4.5案例实现 67
习题4 68
问题探究4 69
第5章 数组 70
【案例分析】 70
5.1数组的基本概念 70
5.2一维数组 71
5.2.1一维数组的声明 71
5.2.2一维数组内存申请 71
5.2.3一维数组的初始化 72
5.2.4测定数组的长度 73
5.2.5 for-each语句与数组 74
5.3二维数组 74
5.3.1认识二维数组 75
5.3.2二维数组的声明与创建 75
5.3.3二维数组元素的初始化 76
5.3.4二维数组的引用 77
5.4案例实现 79
习题5 81
问题探究5 81
第6章 Java类和对象 83
【案例分析】 83
6.1面向对象编程 83
6.2类的描述 86
6.2.1类的定义 86
6.2.2成员变量的访问控制符 87
6.2.3成员方法 89
6.2.4成员变量和局部变量 90
6.2.5 final变量 91
6.3对象的创建与使用 91
6.3.1对象的创建 92
6.3.2对象的比较 93
6.3.3对象的使用 94
6.3.4释放对象 97
6.3.5 Java变量内存分配 98
6.3.6匿名对象 99
6.4类的构造方法 99
6.4.1构造方法的作用和定义 99
6.4.2 this引用 101
6.5 static变量及static方法 103
6.5.1 static变量 104
6.5.2 static方法 105
6.6对象初始化过程 108
6.7成员方法 110
6.7.1方法调用与参数传递方式 110
6.7.2方法重载 113
6.7.3 final最终方法和abstract抽象方法 114
6.8复杂程序解决方案和方法 115
6.9案例实现 118
习题6 120
问题探究6 121
第7章 类的继承和接口 124
【案例分析】 124
7.1类的继承 124
7.1.1继承的概念 124
7.1.2创建子类 125
7.1.3关于父类的构造方法 126
7.2成员变量的隐藏和成员方法的重构 129
7.3抽象类 131
7.4接口 132
7.4.1接口概述 133
7.4.2接口的定义 133
7.4.3实现接口的类定义 133
7.4.4接口的多态性 136
7.5泛型 138
7.5.1泛型的概念和泛型类的声明 138
7.5.2泛型应用 139
7.5.3 ArrayLsit泛型数据结构 140
7.6案例实现 141
习题7 144
问题探究7 145
第8章 包和异常 146
【案例分析】 146
8.1包 146
8.1.1创建包 147
8.1.2类的包外引用 148
8.1.3 jar命令打包与引用 150
8.2异常处理 152
8.2.1异常的基本概念 152
8.2.2异常处理机制 155
8.2.3自定义异常类 159
8.2.4 GUI应用程序的异常处理 159
8.3案例实现 161
习题8 163
问题探究8 164
第9章 面向对象程序设计的基本原则及设计模式初步 165
【案例分析】 165
9.1 UML类图 165
9.1.1类的UML图 166
9.1.2 UML接口表示 166
9.1.3 UML依赖关系 166
9.1.4 UML关联关系 167
9.1.5 UML聚合关系 167
9.1.6 UML组合关系 168
9.1.7泛化关系 168
9.1.8实现关系 168
9.2面向对象程序设计的基本原则 169
9.2.1发现变化,封装变化 169
9.2.2单一职责原则和最少知识原则 172
9.2.3开放-封闭原则 172
9.2.4子类型能够替换基类型原则 173
9.2.5合成/聚合复用原则 175
9.3案例实现 175
习题9 179
问题探究9 179
第10章 图形处理 181
【案例分析】 181
10.1 Java坐标系 181
10.2图形的颜色控制 182
10.3 Graphics类的基本图形 184
10.3.1绘制直线和矩形 185
10.3.2绘制圆弧 187
10.3.3绘制多边形 188
10.4案例实现 189
习题10 190
问题探究10 190
第11章 图形用户界面 191
【案例分析】 191
11.1图形用户界面概述 192
11.1.1图形用户界面组件 192
11.1.2组件分类 192
11.1.3常用容器类的应用 193
11.2事件处理 197
11.2.1基本概念 198
11.2.2事件处理机制 199
11.2.3事件处理的实现方式 200
11.2.4适配器类 204
11.3一般组件 206
11.3.1标签 206
11.3.2按钮 207
11.3.3文本框 207
11.3.4文本区 208
11.3.5列表框组件 209
11.3.6滚动窗格 211
11.3.7复选框和单选按钮 212
11.3.8滑动条 214
11.3.9多事件处理示例 216
11.4菜单与对话框 218
11.4.1创建菜单 218
11.4.2弹出式菜单 221
11.4.3对话框 223
11.5布局管理器 228
11.5.1顺序布局——FlowLayout 228
11.5.2边界布局——BorderLayout 228
11.5.3网格布局——GridLayout 229
11.5.4卡片布局——CardLayout 230
11.5.5手工布局 231
11.6 JApplet的使用 232
11.7 Java事件类方法列表 233
11.8案例实现 234
习题11 238
问题探究11 241
第12章 多线程 242
【案例分析】 242
12.1多线程概述 242
12.1.1基本概念 243
12.1.2线程的状态与生命周期 244
12.1.3线程的调度与优先级 246
12.2创建和运行线程 247
12.2.1利用Thread类创建线程 247
12.2.2用Runnable接口创建线程 249
12.3线程间的数据共享 250
12.4多线程的同步控制 253
12.4.1线程同步相关概念 253
12.4.2 synchronized应用 255
12.4.3 synchronized的进一步说明 257
12.5案例实现 258
习题12 260
问题探究12 261
第13章 综合案例——聊天通信 263
13.1界面及源代码 263
13.2应用程序框架分解 267
13.2.1 Socket连接的建立 267
13.2.2基于TCP的Socket数据通信架构 269
13.2.3图形用户界面与事件处理界面设计 272
13.3知识点 274
13.3.1网络通信的层次 274
13.3.2通信端口 275
13.3.3 Java网络编程中主要使用的类和可能产生的异常 275
13.3.4 Socket通信模式 275
13.3.5 Socket类和ServerSocket类的构造方法及常用方法 276
13.3.6 API系统中DataInputStream和DataOutputStream的应用 277
13.3.7多线程处理机制 279
习题13 280
附录 部分习题参考答案 281