《Java面向对象程序设计》根据Java语言程序面向对象的本质特征以及面向对象程序设计课程的基本教学要求,在详细阐述面向对象程序设计基本理论和方法的基础上,详细介绍了Java语言及其面向对象的基本特性、基本技术。全书共分为10章,首先介绍了面向对象程序设计、Java语言的基础知识,而后详细讲述Java语言中面向对象思想的实现以及使用,最后介绍了Java图形用户界面、Applet、数据库等相关知识。
书中采用大量的实例进行讲解,力求通过实例使读者更形象地理解面向对象思想,快速掌握Java编程技术。《Java面向对象程序设计》难度适中,内容由浅入深,使用性强,覆盖面广,条理清晰。每章附有精心编写的实验和习题,便于读者实践和巩固所学知识。《Java面向对象程序设计》可作为普通高等院校Java程序设计课程的教材,也可作为读者的自学用书。
目录
- 第1章 Java语言概述 1
- 1.1 面向对象程序设计 1
- 1.1.1 面向对象程序设计思想的诞生 1
- 1.1.2 面向对象与面向过程的对比 2
- 1.1.3 面向对象技术的背景和特点 5
- 1.2 Java概述 5
- 1.2.1 Java的起源和发展 6
- 1.2.2 Java特性 6
- 1.2.3 Java体系结构 7
- 1.3 Java运行机制与JVM 7
- 1.3.1 JVM的体系结构 8
- 1.3.2 JVM的运行机制 8
- 1.4 Java类库 9
- 1.5 安装Java开发工具 11
- 1.5.1 下载JDK 11
- 1.5.2 安装JDK 12
- 1.5.3 设置Java运行环境 14
- 1.6 使用命令行 15
- 1.7 使用集成开发环境 17
- 1.7.1 使用JCreator 17
- 1.7.2 使用Eclipse 19
- 1.8 第一个Java程序:整数相加 23
- 1.8.1 开发源代码 24
- 1.8.2 编译运行 24
- 小结 25
- 习题 25
- 上机指导 25
- 实验一:编译Java程序 25
- 第2章 Java语言基础 27
- 2.1 数据类型 27
- 2.1.1 整型 27
- 2.1.2 浮点型 28
- 2.1.3 char型 29
- 2.1.4 boolean型 29
- 2.1.5 基本数据类型值间的转换 30
- 2.2 变量 31
- 2.2.1 变量声明 31
- 2.2.2 变量名和变量类型 32
- 2.2.3 变量的初始化 32
- 2.2.4 final变量 32
- 2.3 运算符 33
- 2.3.1 算术运算符 33
- 2.3.2 关系和逻辑运算符 35
- 2.3.3 位运算符 36
- 2.3.4 赋值运算符 36
- 2.3.5 其他运算符 37
- 2.4 表达式和语句 38
- 2.4.1 表达式 38
- 2.4.2 语句 39
- 2.5 控制结构 40
- 2.5.1 条件语句 40
- 2.5.2 循环语句 43
- 2.5.3 跳转语句 45
- 2.6 字符串 46
- 2.6.1 String类型 46
- 2.6.2 StringBuffer类型 50
- 2.7 数组 53
- 2.7.1 数组的声明与创建 53
- 2.7.2 数组的初始化 53
- 2.7.3 数组的常用操作 56
- 2.8 命名规范 59
- 2.8.1 标识符命名规则 59
- 2.8.2 Java中提倡的命名习惯 60
- 2.9 注释 60
- 2.9.1 单行注释 60
- 2.9.2 区域注释 60
- 2.9.3 文档注释 61
- 小结 62
- 习题 62
- 上机指导 63
- 实验一:基本数据类型的定义及转换 63
- 实验二:使用程序控制结构 63
- 实验三:String的使用 64
- 实验四:数组的使用 65
- 第3章 类与对象 66
- 3.1 面向对象程序设计概述 66
- 3.1.1 面向对象术语 66
- 3.1.2 面向对象程序设计方法的优点 67
- 3.2 面向对象与UML建模 68
- 3.2.1 为什么需要建模 68
- 3.2.2 UML建模语言 68
- 3.2.3 UML的面向对象分析设计 69
- 3.3 Java语言与面向对象特性 70
- 3.4 类的定义和对象的创建 71
- 3.4.1 类的基本结构 71
- 3.4.2 类之间的关系 71
- 3.4.3 构造函数 74
- 3.4.4 类成员 76
- 3.4.5 对象的创建 79
- 3.5 方法 79
- 3.5.1 方法的定义 79
- 3.5.2 方法的重载 81
- 3.5.3 递归 85
- 3.6 静态成员 87
- 3.6.1 静态方法和静态变量 87
- 3.6.2 静态变量和常量 88
- 3.6.3 静态成员的访问 89
- 3.6.4 main()方法 92
- 3.6.5 Factory方法 93
- 3.7 包 95
- 3.7.1 包的定义 95
- 3.7.2 类的导入 96
- 3.7.3 静态导入 98
- 3.8 成员的访问控制 99
- 3.8.1 公共类型:public 100
- 3.8.2 私有类型:private 100
- 3.8.3 默认类型:default 101
- 3.8.4 保护类型:protected 102
- 3.9 封装 102
- 3.10 利用系统已有的类 105
- 3.10.1 Date类 105
- 3.10.2 GregorianCalendar类 107
- 小结 110
- 习题 110
- 上机指导 110
- 实验一:类的定义 111
- 实验二:成员变量的使用 111
- 实验三:编写更复杂的类 111
- 实验四:静态成员的创建 112
- 第4章 继承与多态 114
- 4.1 继承概述 114
- 4.1.1 超类、子类 114
- 4.1.2 继承层次 114
- 4.2 Java中的继承 115
- 4.2.1 派生子类 115
- 4.2.2 继承规则 116
- 4.2.3 方法的继承与覆盖 119
- 4.2.4 this与super 121
- 4.3 强制类型转换 124
- 4.4 动态绑定 127
- 4.5 终止继承:Final类和Final方法 128
- 4.5.1 Final类 128
- 4.5.2 Final方法 129
- 4.6 抽象类 130
- 4.6.1 抽象类 131
- 4.6.2 抽象的方法 132
- 4.7 多态 134
- 4.8 所有类的超类:Object类 136
- 小结 139
- 习题 139
- 上机指导 140
- 实验一:抽象类的定义及调用 140
- 实验二:使用多态 141
- 实验三:使用Object类 141
- 实验四:构造函数的继承 142
- 实验五:对象引用的多态 143
- 第5章 接口与内部类 145
- 5.1 接口的特性 145
- 5.2 接口的定义 146
- 5.3 接口的使用 147
- 5.3.1 接口实现的基本语法 147
- 5.3.2 接口中方法的实现与使用 147
- 5.4 接口与抽象类 149
- 5.5 接口与回调 151
- 5.6 内部类 152
- 5.6.1 内部类概述 153
- 5.6.2 内部类语法规则 153
- 5.6.3 局部内部类 156
- 5.6.4 匿名内部类 159
- 5.6.5 静态内部类 160
- 5.6.6 关于内部类的讨论 162
- 小结 162
- 习题 162
- 上机指导 163
- 实验一:接口的创建 163
- 实验二:内部类的创建 163
- 实验三:创建多个接口 164
- 实验四:接口和继承的混合使用 165
- 第6章 输入/输出和异常处理 166
- 6.1 I/O流 166
- 6.1.1 流的层次 166
- 6.1.2 输入流和输出流 167
- 6.1.3 字节流和字符流 170
- 6.1.4 随机存取文件流 173
- 6.2 I/O流的使用 174
- 6.2.1 标准的I/O流 174
- 6.2.2 基本的I/O流 180
- 6.2.3 过滤流 182
- 6.2.4 文件随机读写 183
- 6.2.5 流的分割 185
- 6.3 对象的序列化 185
- 6.3.1 存储对象 186
- 6.3.2 对象的序列化 186
- 6.3.3 对象序列化中的一些问题 187
- 6.4 文件管理 188
- 6.4.1 File类简介 188
- 6.4.2 使用File类 190
- 6.5 异常处理 191
- 6.5.1 异常处理概述 191
- 6.5.2 异常的层次结构 199
- 6.5.3 自定义异常 202
- 小结 205
- 习题 205
- 上机指导 205
- 实验一:I/O流的使用 206
- 实验二:使用异常处理 206
- 实验三:处理流的使用 206
- 实验四:自定义异常处理 208
- 第7章 图形用户界面的实现 209
- 7.1 图形用户界面概述 209
- 7.2 Swing与AWT 210
- 7.2.1 Swing与AWT之间的关系 210
- 7.2.2 关于Swing与AWT控件的混用 211
- 7.3 事件处理 212
- 7.3.1 事件的层次结构 213
- 7.3.2 窗体事件 214
- 7.3.3 鼠标事件 214
- 7.3.4 事件适配器 216
- 7.4 创建图形用户界面 216
- 7.4.1 窗体 216
- 7.4.2 面板 218
- 7.4.3 标签 218
- 7.4.4 按钮 221
- 7.5 布局管理 223
- 7.5.1 流布局 223
- 7.5.2 网格布局 225
- 7.5.3 卡片布局 227
- 7.6 选择控件 229
- 7.6.1 控件概述 229
- 7.6.2 文本框 230
- 7.6.3 文本区 233
- 7.6.4 单选按钮、复选框 236
- 7.7 菜单和工具栏 239
- 7.7.1 菜单 239
- 7.7.2 工具栏 243
- 7.8 对话框 245
- 7.9 图形文本绘制 248
- 7.9.1 画布 248
- 7.9.2 画笔 249
- 7.9.3 文本 251
- 7.9.4 字体 252
- 7.10 图像处理 255
- 7.11 综合示例:围棋程序 258
- 小结 268
- 习题 268
- 上机指导 268
- 实验一:使用按钮 268
- 实验二:使用Graphics类绘图 269
- 实验三:用户注册界面 269
- 实验四:编写计算器程序 271
- 第8章 Applet应用程序 274
- 8.1 Applet基础 274
- 8.1.1 查看Applet 274
- 8.1.2 Applet与浏览器 275
- 8.1.3 显示Applet 276
- 8.1.4 Applet生命周期 276
- 8.2 Applet类API 277
- 8.3 Applet的HTML标记和属性 278
- 8.3.1 定位属性 279
- 8.3.2 编码属性 279
- 8.4 创建Applet 280
- 8.4.1 简单Applet 280
- 8.4.2 向Applet传递参数 282
- 8.5 Applet与Application 284
- 8.6 Applet弹出窗口 287
- 8.7 Applet安全 288
- 8.7.1 Applet安全控制 288
- 8.7.2 Applet沙箱 289
- 8.8 实例研究:显示动画 289
- 8.8.1 动画原理及重新绘制 290
- 8.8.2 Timer类简介 290
- 小结 292
- 习题 292
- 上机指导 293
- 实验一:创建Applet 293
- 实验二:在Applet中显示图像界面 293
- 实验三:显示Applet传递的参数 294
- 第9章 网络通信 295
- 9.1 网络通信概述 295
- 9.1.1 TCP/IP、UDP 295
- 9.1.2 Socket套接字 296
- 9.2 Java网络通信机制 297
- 9.3 URL通信 298
- 9.3.1 URL的创建 299
- 9.3.2 解析URL 299
- 9.3.3 获取数据 300
- 9.4 InetAddress类 301
- 9.5 Socket套接字 303
- 9.5.1 ServerSocket类 303
- 9.5.2 Socket类 304
- 9.5.3 组播套接字 307
- 9.6 综合示例:聊天室程序 310
- 小结 315
- 习题 315
- 上机指导 316
- 实验一:创建URL连接 316
- 实验二:获得URL中的数据 316
- 第10章 高级应用 317
- 10.1 线程 317
- 10.1.1 Java中的线程模型 317
- 10.1.2 线程的创建 319
- 10.1.3 线程的同步 321
- 10.1.4 线程的调度 323
- 10.1.5 线程的其他方法 325
- 10.2 Servlet和JSP技术 328
- 10.2.1 JSP概述 328
- 10.2.2 JSP语法 329
- 10.2.3 JSP与JavaBean 332
- 10.2.4 Servlet技术 334
- 10.3 数据库技术 337
- 10.3.1 SQL基础 337
- 10.3.2 JDBC层次结构 338
- 10.3.3 加载数据库驱动 340
- 10.3.4 基本数据库访问 341
- 小结 343
- 习题 343
- 上机指导 343
- 实验一:创建多线程 343
- 实验二:使用JSP 344