《面向对象程序设计——Java(第三版)》是2016年西安电子科技大学出版社出版的图书,作者是张白一、崔尚森、张辰。
本书将面向对象的理论与Java语言程序设计技术相结合,意在培养读者正确运用面向对象的思维方法分析问题和解决问题的能力。全书共分16章。第1章介绍了编程语言的发展、Java语言的特点和NetBeans集成开发环境。第2章~第6章主要介绍了面向对象的基本理论、原理、技术方法和Java语言基础知识,阐述了面向对象程序设计的基本原则和特点。从第7章开始的以后各章介绍了Java的常用标准类库及编程技巧,主要包括字符串类、集合类、GUI设计、Swing组件、异常处理、多线程技术、输入/输出技术、网络编程技术和JDBC数据库应用编程技术等。
本书可作为高等院校计算机类、软件工程类、信息类专业相关课程的教材,也可作为对面向对象编程技术和Java语言感兴趣的读者的自学用书。
为方便教学和实践,西安电子科技大学出版社网站上提供了可免费使用的电子教案和示例程序源代码。
目录
- 第1章 Java系统环境概述 1
- 1.1 编程语言的发展 1
- 1.1.1 机器语言 2
- 1.1.2 汇编语言 2
- 1.1.3 高级语言 2
- 1.1.4 面向对象的语言 3
- 1.1.5 面向对象语言的发展 4
- 1.2 网络时代的编程语言——Java 4
- 1.2.1 Java的产生 5
- 1.2.2 Java的特点 5
- 1.3 Java的开发运行环境 11
- 1.3.1 下载和安装JDK与NetBeans 11
- 1.3.2 运行NetBeans IDE 12
- 1.4 Java程序的运行步骤 12
- 1.4.1 JVM的体系结构及工作原理 13
- 1.4.2 Java Application程序的建立及运行 14
- 1.4.3 Java Applet程序的建立及运行 18
- 第2章 Java语言基础 22
- 2.1 Java符号集 22
- 2.1.1 标识符及其命名 22
- 2.1.2 关键字 23
- 2.1.3 运算符 23
- 2.1.4 分隔符 24
- 2.1.5 注释 24
- 2.2 数据类型、常量与变量 24
- 2.2.1 数据类型的概念 24
- 2.2.2 常量 25
- 2.2.3 变量 27
- 2.2.4 引用类型 32
- 2.3 表达式和语句 32
- 2.3.1 算术表达式 32
- 2.3.2 赋值表达式 36
- 2.3.3 表达式语句 37
- 2.3.4 关系表达式 37
- 2.3.5 逻辑表达式 38
- 2.3.6 位运算 39
- 2.3.7 运算符的优先级 40
- 第3章 程序流程控制 43
- 3.1 选择结构程序设计 43
- 3.1.1 if语句 43
- 3.1.2 switch语句 49
- 3.1.3 条件运算符 50
- 3.2 循环结构程序设计 51
- 3.2.1 while语句 51
- 3.2.2 do-while语句 52
- 3.2.3 for语句 53
- 3.2.4 for语句头的变化与逗号运算符 54
- 3.2.5 循环语句比较 56
- 3.2.6 循环控制要点 56
- 3.2.7 循环嵌套 58
- 3.3 break和continue语句 60
- 3.3.1 break语句 61
- 3.3.2 continue语句 63 [1]
- 第4章 类与对象 66
- 4.1 类与对象的概念 66
- 4.1.1 抽象原则 66
- 4.1.2 对象 69
- 4.1.3 类 69
- 4.1.4 类与对象的关系 70
- 4.1.5 定义类的一般格式 70
- 4.1.6 Java类库 72
- 4.1.7 创建对象 74
- 4.1.8 使用对象 76
- 4.1.9 对象的初始化与构造方法 78
- 4.2 封装机制 80
- 4.2.1 封装的概念 80
- 4.2.2 类的严谨定义 80
- 4.2.3 类修饰符 81
- 4.3 数据成员 84
- 4.3.1 数据成员的声明 84
- 4.3.2 用static修饰的静态数据成员 84
- 4.3.3 静态数据成员的初始化 85
- 4.3.4 用final修饰的最终数据成员 86
- 4.4 成员方法 87
- 4.4.1 成员方法的分类 87
- 4.4.2 声明成员方法的格式 88
- 4.4.3 方法体中的局部变量 88
- 4.4.4 成员方法的返回值 89
- 4.4.5 形式参数与实际参数 90
- 4.4.6 成员方法的引用方式 92
- 4.4.7 引用成员方法时应注意的事项 92
- 4.4.8 成员方法的递归引用 93
- 4.4.9 用static修饰的静态方法 95
- 4.4.10 数学函数类方法 96
- 4.4.11 用final修饰的最终方法 97
- 4.4.12 用native修饰的本地方法 98
- 第5章 消息、继承与多态 100
- 5.1 消息 100
- 5.1.1 消息的概念 100
- 5.1.2 公有消息和私有消息 101
- 5.1.3 特定于对象的消息 101
- 5.2 访问控制 103
- 5.2.1 公共访问控制符public 103
- 5.2.2 缺省访问控制符 105
- 5.2.3 私有访问控制符private 106
- 5.2.4 保护访问控制符protected 107
- 5.3 多态机制 109
- 5.3.1 多态的概念 109
- 5.3.2 重载 109
- 5.3.3 覆盖 110 [1]
- 5.4 继承机制 110
- 5.4.1 继承的概念 110
- 5.4.2 继承的特征 111
- 5.4.3 Java用extends指明继承关系 112
- 5.4.4 this与super 114
- 5.4.5 构造方法的重载与继承 118
- 5.4.6 向方法传递对象 121
- 5.4.7 继承与封装的关系 122
- 5.5 抽象类、接口与包 122
- 5.5.1 抽象类 122
- 5.5.2 接口 126
- 5.5.3 包与程序复用 132
- 第6章 数组 140
- 6.1 一维数组 140
- 6.1.1 一维数组的声明 140
- 6.1.2 创建一维数组对象 140
- 6.1.3 一维数组的引用 142
- 6.2 一维数组引用举例 142
- 6.2.1 测定数组的长度 142
- 6.2.2 数组下标的灵活使用 143
- 6.2.3 数组名之间的赋值 146
- 6.2.4 向成员方法传递数组元素 147
- 6.2.5 向成员方法传递数组名 148
- 6.2.6 数组元素排序 150
- 6.2.7 对象数组 154
- 6.3 二维数组 156
- 6.3.1 二维数组的声明 157
- 6.3.2 创建二维数组对象 157
- 6.4 二维数组的引用 159
- 6.4.1 测定数组的长度及数组赋值 159
- 6.4.2 数组名作为成员方法的参数 161
- 第7章 字符串类
- 7.1 String类 164
- 7.1.1 直接赋值创建String对象 164
- 7.1.2 String类的构造方法 164
- 7.1.3 String类的常用方法 166
- 7.1.4 访问字符串对象 167
- 7.1.5 字符串比较 169
- 7.1.6 字符串操作 170
- 7.1.7 其他类型的数据转换成字符串 171
- 7.1.8 main方法中的参数 172 [1]
- 7.2 StringBuffer类 175
- 7.2.1 创建StringBuffer对象 175
- 7.2.2 StringBuffer类的常用方法 175
- 7.2.3 StringBuffer类的测试缓冲区长度的方法 176
- 7.2.4 StringBuffer类的append( )方法 177
- 7.2.5 StringBuffer类的insert( )方法 177
- 7.2.6 StringBuffer类的setcharAt( )方法 178
- 第8章 集合类 181?
- 8.1 线性结构简介 181
- 8.2 集合与集合框架 182
- 8.2.1 集合(Collection) 182
- 8.2.2 集合框架 183
- 8.3 Collection接口 184
- 8.3.1 Collection接口简介 184
- 8.3.2 Iterator迭代器 185
- 8.4 List接口与实现类 187
- 8.4.1 List接口简介 187
- 8.4.2 ArrayList类 190
- 8.4.3 LinkedList类 190
- 8.5 Set接口 192
- 8.5.1 Set接口简介 192
- 8.5.2 SortedSet接口 195
- 8.6 Map接口 196
- 8.6.1 Map接口简介 196
- 8.6.2 Map接口的常用操作 196
- 8.6.3 Map.Entry接口的常用操作 197
- 8.6.4 SortedMap接口 199
- 8.7 Collections算法类 200
- 8.7.1 为集合增加元素的addAll( )方法 200
- 8.7.2 sort( )和reverse( )方法 201
- 8.7.3 实现混排的shuffle( )方法 202
- 8.7.4 替换集合中元素的replaceAll( )方法 202
- 8.7.5 二分查找的binarySearch( )方法 203
- 8.7.6 交换指定位置元素的swap( )方法 204 [1]
- 第9章 文字与图形GUI设计 206
- 9.1 GUI设计概述 206
- 9.1.1 JFC简介 206
- 9.1.2 图形用户界面元素分类 207
- 9.1.3 Swing的组件 209
- 9.1.4 控制Applet运行状态的基本方法 211
- 9.1.5 JApplet类 212
- 9.1.6 Java 2D API 212
- 9.1.7 Graphics2D对象 213
- 9.2 绘制文字 213
- 9.2.1 绘制文字的成员方法 214
- 9.2.2 Font类 215
- 9.3 Color类 217
- 9.3.1 Color类的构造方法 218
- 9.3.2 Color类的数据成员常量 218
- 9.3.3 Color类的成员方法 219
- 9.3.4 应用举例 219
- 9.4 绘制形状图形 220
- 9.4.1 绘制几何图形的方法与步骤 220
- 9.4.2 绘制线段与矩形 220
- 9.4.3 绘制椭圆、圆及弧 223
- 9.4.4 绘制多边形 225
- 9.4.5 图形重叠时的色彩设置 227
- 9.4.6 绘制剪切文字图形 229
- 第10章 常用组件GUI设计 233
- 10.1 布局管理器 233
- 10.1.1 BorderLayout 234
- 10.1.2 FlowLayout 235
- 10.1.3 CardLayout 236
- 10.1.4 GridLayout 237
- 10.1.5 BoxLayout 238
- 10.2 窗口与面板容器 242
- 10.2.1 JFrame容器 242
- 10.2.2 JPanel容器 243
- 10.3 事件响应原理 245
- 10.3.1 委托事件模型 245
- 10.3.2 java.awt.Event事件类的继承关系 245
- 10.3.3 事件与事件源的关系 246
- 10.3.4 Swing中的事件与事件监听器 247
- 10.4 JLable组件 248
- 10.5 JButton组件与JToggleButton组件 249
- 10.5.1 常用组件的继承关系 249
- 10.5.2 AbstractButton类的常用成员方法 250
- 10.5.3 JButton类的构造方法 251
- 10.5.4 JToggleButton类的构造方法 251
- 10.5.5 ActionEvent事件及其响应 252
- 10.5.6 应用举例 253 [1]
- 10.6 JCheckBox和JRadioButton组件 255
- 10.6.1 JCheckBox类的构造方法 256
- 10.6.2 JRadioButton类的构造方法 256
- 10.6.3 ItemEvent事件及其响应 256
- 10.6.4 应用举例 258
- 10.7 JComboBox组件 260
- 10.7.1 JComboBox类的构造方法和成员方法 260
- 10.7.2 事件响应 260
- 10.7.3 应用举例 261
- 10.8 JList组件 262
- 10.8.1 JList类的构造方法和成员方法 262
- 10.8.2 ListSelectionEvent事件及其响应 263
- 10.8.3 应用举例 263
- 10.9 JTextField与JTextArea组件 264
- 10.9.1 JTextField组件的构造方法和成员方法 264
- 10.9.2 JTextArea组件的构造方法和成员方法 265
- 10.9.3 事件响应及应用举例 266
- 习题10 267
- 第11章 高级组件GUI设计 269
- 11.1 事件适配器 269
- 11.2 KeyEvent事件及其响应 270
- 11.2.1 KeyEvent事件 270
- 11.2.2 获取事件源的方法 270
- 11.2.3 键盘事件的响应 270
- 11.2.4 应用举例 271
- 11.3 MouseEvent事件及其响应 272
- 11.3.1 MouseEvent事件 272
- 11.3.2 获取事件源的方法 273
- 11.3.3 鼠标事件的响应 273
- 11.3.4 应用举例 274
- 11.4 WindowEvent事件及其响应 275
- 11.4.1 WindowEvent事件 276
- 11.4.2 获取事件源的方法 276
- 11.4.3 窗口事件的响应 276
- 11.4.4 应用举例 277
- 11.5 JScrollPane与JScrollBar组件 279
- 11.5.1 JScrollPane组件 279
- 11.5.2 JScrollBar组件 280
- 11.5.3 AdjustmentEvent事件应用举例 281
- 11.6 JTabbedPane容器 283
- 11.6.1 JTabbedPane容器简介 283
- 11.6.2 应用举例 284 [1]
- 11.7 菜单设计 285
- 11.7.1 菜单栏 286
- 11.7.2 菜单 286
- 11.7.3 菜单项 286
- 11.7.4 制作菜单的一般步骤 287
- 11.7.5 菜单设计应用举例 287
- 11.8 对话框设计 288
- 11.8.1 JOptionPane概述 289
- 11.8.2 Message Dialog 289
- 11.8.3 Confirm Dialog 290
- 11.8.4 Input Dialog 291
- 11.8.5 Option Dialog 291
- 11.8.6 JOptionPane应用举例 292
- 11.8.7 JDialog对话框 296
- 11.8.8 JDialog应用举例 297
- 第12章 异常处理 300
- 12.1 Java的异常处理机制 300
- 12.1.1 异常处理机制的结构 301
- 12.1.2 异常类的继承关系 302
- 12.2 Java的异常处理语句 304
- 12.2.1 try-catch-finally语句 304
- 12.2.2 嵌套try-catch-finally语句 306
- 12.2.3 抛出异常的throw语句与throws语句 307
- 第13章 多线程 310
- 13.1 Java中的多线程实现技术 310
- 13.1.1 线程的生命周期 310
- 13.1.2 Thread类的方法 312
- 13.1.3 通过继承Thread类方式创建线程 314
- 13.1.4 通过实现Runnable接口方式创建线程 315
- 13.2 多线程的管理 319
- 13.2.1 线程调度 319
- 13.2.2 线程优先级 320
- 13.2.3 线程同步 321
- 13.2.4 线程组 323
- 第14章 输入与输出 325
- 14.1 基本输入/输出流类 325
- 14.1.1 InputStream类 325
- 14.1.2 OutputStream类 329
- 14.1.3 Reader类和Writer类 333 [1]
- 14.2 文件的输入/输出 336
- 14.2.1 File类 337
- 14.2.2 FileInputStream类和
- FileOutputStream类 340
- 14.2.3 字节文件输入/输出流的读/写 341
- 14.2.4 FileReader类和FileWriter类 344
- 14.2.5 RandomAccessFile类 347
- 第15章 网络编程 352
- 15.1 URL通信 352
- 15.1.1 URL类 353
- 15.1.2 利用URL类访问网上资源示例程序 354
- 15.1.3 使用URLConnection类访问网上资源 356
- 15.2 Socket通信 357
- 15.2.1 Socket的概念及通信机制 358
- 15.2.2 Socket类与 ServerSocket类 359
- 15.2.3 流式Socket通信的示例程序 360
- 15.2.4 URL通信与Socket通信的区别 364
- 15.3 UDP通信 364
- 15.3.1 UDP通信机制 364
- 15.3.2 DatagramSocket类 365
- 15.3.3 DatagramPacket类 366
- 15.3.4 UDP通信示例程序 366
- 第16章 JDBC连接数据库 370
- 16.1 关系型数据库与SQL 370
- 16.1.1 关系型数据库的基本概念 370
- 16.1.2 数据定义语言 371
- 16.1.3 数据操纵语言 372
- 16.1.4 数据查询语言 372
- 16.2 使用JDBC连接数据库 373
- 16.2.1 JDBC结构 373
- 16.2.2 四类JDBC驱动程序 374
- 16.2.3 JDBC编程要点 375
- 16.2.4 常用的JDBC类与方法 375
- 16.2.5 安装ODBC驱动程序示例 378
- 16.3 JDBC编程实例 381
- 16.3.1 创建数据表 381
- 16.3.2 向数据表中插入数据 382
- 16.3.3 更新数据 383
- 16.3.4 删除记录 385