普通高等学校计算机教育“十二五”规划教材:Java应用开发与实践
本书作为Java技术课程的教材,系统全面地介绍了有关Java开发所涉及的各类知识。全书共分22章,内容包括初识Java、Eclipse开发工具、Java语言基础、流程控制、数组、字符串、类和对象、接口、继承与多态、类的高级特性、异常处理、输入输出、Swing程序设计、事件处理、表格组件的应用、树组件的应用、多线程、图形绘制技术、常用工具类、数据库编程应用、综合案例——快递打印系统、课程设计——软件注册程序、课程设计——决策分析程序。全书每章内容都与实例紧密结合,有助于学生理解知识、应用知识,达到学以致用的目的。本书附有配套DVD光盘,光盘中提供有本书所有实例、综合实例、实验、综合案例和课程设计的源代码、制作精良的电子课件PPT及教学录像、《Java编程词典(个人版)》体验版学习软件。其中,源代码全部经过精心测试,能够在WindowsXP、Windows2003、Windows7系统下编译和运行。本书可作为本科计算机专业、软件学院、高职软件专业及相关专业的教材,同时也适合Java爱好者及初、中级的程序开发人员参考使用。
基本信息
- 书名
普通高等学校计算机教育"十二五"规划教材:Java应用开发与实践
- 出版社
人民邮电出版社
- 页数
412页
- 开本
16
- 定价
52.00
内容简介
《普通高等学校计算机教育"十二五"规划教材:Java应用开发与实践》可作为本科计算机专业、软件学院、高职软件专业及相关专业的教材,同时也适合Java爱好者及初、中级的程序开发人员参考使用。
图书目录
第1章 初识Java 1 1.1 什么是Java语言 1 1.1.1 Java语言历史 1 1.1.2 Java的运行机制 2 1.2 Java语言现状 2 1.3 Java语言特性 3 1.3.1 简单 3 1.3.2 面向对象 3 1.3.3 分布性 3 1.3.4 可移植性 3 1.3.5 解释型 4 1.3.6 安全性 4 1.3.7 健壮性 4 1.3.8 多线程 4 1.3.9 高性能 4 1.3.10 动态 4 1.4 JDK的下载和安装 4 1.4.1 下载JDK 4 1.4.2 安装JDK 6 1.4.3 配置JDK 8 1.5 第一个Java程序 9 1.5.1 编写源代码 10 1.5.2 编译源代码 10 1.5.3 运行class文件 10 1.6 综合实例——用星号绘制等腰三角形 11 知识点提炼 12 习题 12 实验:验证Java开发环境 12 实验目的 12 实验内容 12 实验步骤 13 第2章 Eclipse开发工具 14 2.1 Eclipse简介 14 2.2 Eclipse安装与汉化 14 2.2.1 下载Eclipse 14 2.2.2 安装Eclipse 15 2.2.3 启动Eclipse 16 2.2.4 汉化Eclipse 17 2.3 第一个Java项目 19 2.3.1 创建Java项目 19 2.3.2 创建类文件 19 2.3.3 编写程序代码 19 2.3.4 运行Java程序 20 2.3.5 以调试方式运行程序 20 2.4 综合实例——在Eclispe中输出字符表情 21 知识点提炼 21 习题 21 实验:设置API提示信息 22 实验目的 22 实验内容 22 实验步骤 22 第3章 Java语言基础 24 3.1 Java程序的基本结构 24 3.2 标识符和关键字 26 3.2.1 标识符 26 3.2.2 关键字 26 3.3 基本数据类型 27 3.3.1 整数类型 27 3.3.2 浮点类型 29 3.3.3 字符类型 30 3.3.4 布尔类型 31 3.4 变量与常量 31 3.4.1 声明变量 31 3.4.2 声明常量 32 3.4.3 变量的有效范围 32 3.5 运算符 33 3.5.1 赋值运算符 33 3.5.2 算术运算符 33 3.5.3 自增和自减运算符 34 3.5.4 比较运算符 34 3.5.5 逻辑运算符 35 3.5.6 位运算符 36 3.5.7 三元运算符 38 3.5.8 运算符优先级 39 3.6 类型转换 39 3.6.1 自动类型转换 40 3.6.2 强制类型转换 40 3.7 代码注释和编码规范 40 3.7.1 代码注释 41 3.7.2 编码规范 42 3.8 综合实例——使用位运算加密字符串 42 知识点提炼 43 习题 43 实验:实现两个变量的互换 44 实验目的 44 实验内容 44 实验步骤 44 第4章 流程控制 45 4.1 复合语句 45 4.2 分支结构 46 4.2.1 if条件语句 46 4.2.2 switch多分支语句 49 4.3 循环语句 51 4.3.1 while循环语句 51 4.3.2 do 4.3.3 for循环语句 52 4.4 跳转语句 54 4.4.1 break语句 54 4.4.2 continue语句 55 4.4.3 return语句 55 4.5 综合实例——判断今年是否为闰年 56 知识点提炼 57 习题 57 实验:使用for循环输出空心菱形 57 实验目的 57 实验内容 57 实验步骤 57 第5章 数组 59 5.1 数组概述 59 5.2 一维数组 60 5.2.1 创建一维数组 60 5.2.2 初始化一维数组 61 5.3 二维数组 61 5.3.1 创建二维数组 61 5.3.2 初始化二维数组 61 5.4 数组的基本操作 62 5.4.1 遍历数组 62 5.4.2 复制数组 62 5.4.3 填充数组 63 5.4.4 排序数组元素 64 5.4.5 查找数组元素 65 5.5 综合实例——实现冒泡排序算法 66 知识点提炼 66 习题 67 实验:互换二维数组的行列 67 实验目的 67 实验内容 68 实验步骤 68 第6章 字符串 69 6.1 创建字符串 69 6.2 字符串操作 70 6.2.1 字符串连接 70 6.2.2 获取字符串信息 71 6.2.3 字符串比较 73 6.2.4 字符串替换 74 6.2.5 字符串分割 75 6.2.6 大小写转换 76 6.2.7 去除首末空格 76 6.3 格式化字符串 77 6.3.1 格式化方法 77 6.3.2 日期格式化 77 6.3.3 时间格式化 78 6.3.4 日期时间组合格式化 79 6.3.5 常规类型格式化 80 6.4 正则表达式 81 6.4.1 判断是否符合正则表达式的方法 81 6.4.2 正则表达式的元字符 81 6.4.3 正则表达式的限定符 82 6.4.4 方括号中元字符的含义 83 6.5 可变字符串 84 6.6 综合实例——验证IP地址合法性 85 知识点提炼 86 习题 86 实验:统计汉字个数 86 实验目的 86 实验内容 86 实验步骤 87 第7章 类和对象 88 7.1 面向对象编程基本概念 88 7.1.1 什么是对象? 88 7.1.2 什么是类? 89 7.1.3 什么是封装? 90 7.1.4 什么是继承? 91 7.1.5 什么是多态? 91 7.2 类和对象 92 7.2.1 访问权限修饰符 92 7.2.2 类的定义 93 7.2.3 成员变量的定义 93 7.2.4 普通方法的定义 94 7.2.5 局部变量的定义 95 7.2.6 构造方法的定义 95 7.2.7 方法参数的传递 96 7.2.8 对象创建和使用 99 7.2.9 this关键字的用途 101 7.2.10 static关键字的用途 102 7.2.11 final关键字的用途 103 7.2.12 包的定义与使用 103 7.3 注解 104 7.3.1 预定义注解 104 7.3.2 自定义注解 104 7.4 综合实例——构造方法的应用 105 知识点提炼 106 习题 106 实验:温度单位转换工具 107 实验目的 107 实验内容 107 实验步骤 107 第8章 接口、继承与多态 108 8.1 接口的使用 108 8.1.1 接口的定义 108 8.1.2 接口的实现 109 8.2 类的继承 110 8.2.1 继承的实现 110 8.2.2 继承中的重写 111 8.2.3 使用super关键字 112 8.3 多态 112 8.4 Object类 113 8.5 对象类型的转换 115 8.5.1 向上转型 115 8.5.2 向下转型 116 8.6 instanceof判断对象类型 117 8.7 综合实例——简单工厂模式应用 118 知识点提炼 119 习题 120 实验:策略模式的应用 120 实验目的 120 实验内容 120 实验步骤 120 第9章 类的高级特性 122 9.1 抽象类 122 9.2 内部类 124 9.2.1 成员内部类 124 9.2.2 局部内部类 127 9.2.3 匿名内部类 128 9.2.4 静态内部类 129 9.3 Class类与Java反射 130 9.3.1 获得Class类对象 130 9.3.2 获得修饰符 131 9.3.3 访问构造方法 131 9.3.4 访问成员变量 133 9.3.5 访问成员方法 134 9.4 使用注解功能 135 9.4.1 定义Annotation类型 135 9.4.2 访问Annotation信息 137 9.5 综合实例——自定义toString()方法 138 知识点提炼 139 习题 139 实验:静态内部类的应用 140 实验目的 140 实验内容 140 实验步骤 140 第10章 异常处理 142 10.1 异常概述 142 10.2 异常分类 143 10.2.1 可控式异常 143 10.2.2 运行时异常 144 10.3 获取异常信息 144 10.4 处理异常 146 10.4.1 使用try—catch处理异常 146 10.4.2 使用try—catch—finally处理异常 146 10.4.3 使用try—finally处理异常 147 10.5 抛出异常 149 10.5.1 使用throws声明抛出异常 149 10.5.2 使用throw语句抛出异常 150 10.6 自定义异常 151 10.6.1 创建自定义异常类 151 10.6.2 使用自定义异常类 152 10.7 异常的使用原则 153 10.8 综合实例——空指针异常 153 知识点提炼 153 习题 154 实验:自定义异常类 154 实验目的 154 实验内容 154 实验步骤 154 第11章 输入/输出 156 11.1 流概述 156 11.2 输入输出流 157 11.2.1 输入流 157 11.2.2 输出流 158 11.3 File类 159 11.3.1 文件的创建与删除 160 11.3.2 获取文件信息 161 11.4 文件输入输出流 162 11.4.1 FileInputStream类与FileOutputStream类 162 11.4.2 FileReader类和FileWriter类 164 11.5 带缓存的输入输出流 165 11.5.1 BufferedInputStream类与BufferedOutputStream类 165 11.5.2 BufferedReader类与BufferedWriter类 166 11.6 数据输入输出流 166 11.7 ZIP压缩输入输出流 169 11.7.1 压缩文件 169 11.7.2 解压缩ZIP文件 171 11.8 综合实例——合并文本文件 172 知识点提炼 174 习题 174 实验:删除TMP文件 174 实验目的 174 实验内容 174 实验步骤 175 第12章 Swing程序设计 176 12.1 Swing概述 176 12.2 Swing常用窗体 177 12.2.1 JFrame框架窗体 177 12.2.2 JDialog窗体 178 12.3 常用布局管理器 180 12.3.1 绝对布局 180 12.3.2 流布局管理器 181 12.3.3 边界布局管理器 183 12.3.4 网格布局管理器 184 12.4 常用面板 185 12.4.1 JPanel面板 185 12.4.2 JScrollPane面板 186 12.5 标签组件与图标 187 12.5.1 标签的使用 187 12.5.2 图标的使用 187 12.6 按钮组件 190 12.6.1 提交按钮组件 190 12.6.2 单选按钮组件 191 12.6.3 复选框组件 193 12.7 列表组件 194 12.7.1 下拉列表框组件 194 12.7.2 列表框组件 196 12.8 文本组件 197 12.8.1 文本框组件 198 12.8.2 密码框组件 199 12.8.3 文本域组件 199 12.9 综合实例——简单的每日提示信息 200 知识点提炼 202 习题 202 实验:实现用户注册界面 203 实验目的 203 实验内容 203 实验步骤 203 第13章 事件处理 206 13.1 监听事件简介 206 13.2 键盘事件 206 13.3 鼠标事件 209 13.4 窗体事件 211 13.4.1 捕获窗体焦点变化事件 211 13.4.2 捕获窗体状态变化事件 212 13.4.3 捕获其他窗体事件 214 13.5 选项事件 215 13.6 综合实例——模拟相机拍摄 217 知识点提炼 218 习题 219 实验:简易配对游戏 219 实验目的 219 实验内容 219 实验步骤 219 第14章 表格组件的应用 222 14.1 创建表格 222 14.1.1 创建表格 222 14.1.2 定制表格 225 14.2 维护表格模型 229 14.2.1 创建表格模型 229 14.2.2 设置表格模型 230 14.2.3 维护模型对象 231 14.3 创建行标题栏 235 14.4 表格模型事件监听与处理 239 14.5 综合实例——表格栅栏特效 244 知识点提炼 245 习题 246 实验:表格分页技术 246 实验目的 246 实验内容 246 实验步骤 246 第15章 树组件的应用 250 15.1 创建树组件 250 15.2 维护树模型 253 15.2.1 创建模型对象 253 15.2.2 设置树组件的模型 255 15.2.3 维护树的模型 259 15.3 综合实例——查看节点的各种状态 263 知识点提炼 264 习题 264 实验:自定义树节点的外观 264 实验目的 264 实验内容 265 实验步骤 265 第16章 多线程 268 16.1 线程简介 268 16.2 实现线程的两种方式 269 16.2.1 继承Thread类 269 16.2.2 实现Runnable接口 271 16.3 线程的生命周期 273 16.4 操作线程的方法 274 16.4.1 线程的休眠 274 16.4.2 线程的加入 275 16.4.3 线程的中断 277 16.4.4 线程的礼让 278 16.5 线程的优先级 278 16.6 线程同步 280 16.6.1 线程安全 280 16.6.2 线程同步机制 281 16.7 线程间的通信 283 16.8 综合实例——查看线程的运行状态 285 知识点提炼 286 习题 287 实验:简单的线程死锁 287 实验目的 287 实验内容 287 实验步骤 287 第17章 图形绘制技术 289 17.1 绘制图形 289 17.1.1 Graphics 289 17.1.2 Graphics2D 291 17.2 绘图颜色与笔画属性 293 17.2.1 设置颜色 293 17.2.2 笔画属性 294 17.3 绘制文本 294 17.3.1 设置字体 295 17.3.2 显示文字 295 17.4 图片处理 296 17.4.1 绘制图片 296 17.4.2 放大与缩小 297 17.4.3 图片翻转 299 17.4.4 图片旋转 302 17.4.5 图片倾斜 304 17.5 综合实例——绘制直方图 305 知识点提炼 306 习题 306 实验:绘制彩色字符串 307 实验目的 307 实验内容 307 实验步骤 307 第18章 常用工具类 308 18.1 日期时间类 308 18.1.1 创建Date类的对象 308 18.1.2 比较Date对象 309 18.1.3 更改Date对象 310 18.2 数学运算 311 18.2.1 Math类 311 18.2.2 Math类的数学方法 311 18.3 随机数 315 18.3.1 通过Math类生成随机数 316 18.3.2 使用Random类生成随机数 318 18.4 数字格式化类 319 18.4.1 DecimalFormat类 319 18.4.2 数字的格式化输出 320 18.5 综合实例——简单的数字时钟 322 知识点提炼 323 习题 323 实验:制作公历万年历 323 实验目的 323 实验内容 323 实验步骤 323 第19章 数据库编程应用 325 19.1 JDBC技术 325 19.1.1 数据库概述 325 19.1.2 JDBC—ODBC技术介绍 326 19.1.3 JDBC技术 327 19.2 JDBC中常用的类和接口 327 19.2.1 DriverManager类 328 19.2.2 Connection接口 328 19.2.3 Statement接口 329 19.2.4 PreparedStatement接口 329 19.2.5 ResultSet接口 330 19.3 数据库连接 330 19.3.1 加载数据库驱动 331 19.3.2 创建数据库连接 331 19.3.3 向数据库发送SQL语句 335 19.3.4 获取查询结果集 335 19.3.5 关闭连接 336 19.4 综合实例——向数据表中添加信息 336 知识点提炼 338 习题 339 实验:使用批处理删除数据 339 实验目的 339 实验内容 339 实验步骤 339 第20章 综合案例——快递打印系统 341 20.1 需求分析 341 20.2 总体设计 342 20.2.1 系统目标 342 20.2.2 构建开发环境 343 20.2.3 系统功能结构 343 20.3 数据库设计 343 20.3.1 数据库概要说明 343 20.3.2 数据库E—R图 343 20.3.3 数据表结构 344 20.4 公共类设计 345 20.4.1 公共类DAO 345 20.4.2 公共类SaveUserStateTool 345 20.5 程序主要系统开发 346 20.5.1 系统登录系统设计 346 20.5.2 系统主界面系统设计 349 20.5.3 添加快递信息系统设计 351 20.5.4 修改快递信息系统设计 355 20.5.5 打印快递单与打印设置系统设计 360 20.5.6 添加用户窗体系统设计 365 20.5.7 修改用户密码窗体系统设计 367 20.6 程序打包与安装 369 20.6.1 打包 369 20.6.2 安装 370 第21章 课程设计——软件注册程序 371 21.1 课程设计目的 371 21.2 功能描述 371 21.2.1 注册导航功能 372 21.2.2 软件注册功能 372 21.2.3 软件注册机功能 372 21.3 总体设计 372 21.3.1 构建开发环境 372 21.3.2 业务流程图 372 21.4 实现过程 373 21.4.1 注册导航功能 373 21.4.2 软件注册功能 379 21.4.3 软件注册机功能 389 21.5 调试运行 390 21.6 课程设计总结 392 第22章 课程设计——决策分析程序 393 22.1 课程设计目的 393 22.2 功能描述 393 22.2.1 导出为Excel文件功能 394 22.2.2 导出为PDF文件功能 394 22.2.3 分析数据并生成图表 394 22.3 总体设计 394 22.3.1 构建开发环境 394 22.3.2 业务流程图 394 22.4 实现过程 395 22.4.1 主窗体设计 395 22.4.2 导出为Excel文件功能 397 22.4.3 导出为PDF文件功能 400 22.4.4 绘制饼图 403 22.4.5 绘制柱形图 405 22.4.6 绘制折线图 408 22.4.7 绘制区域图 410 22.5 调试运行 411 22.6 课程设计总结 412
文摘
版权页: 插图: BufferedlnputStream(InputStream in,int size) 第一种形式的构造方法创建了一个带有32个字节的缓存流,第二种形式的构造方法按指定的大小来创建缓存区。一个最优的缓存区的大小,取决于它所在的操作系统、可用的内存空间以及机器配置。从构造方法可以看出,BufferedlnputStream对象位于InputStream类对象之前。图11—11描述了字节数据读取文件的过程。 使用BufferedOutputStream输出信息和往OutputStream输出信息完全一样,只不过BufferedOutputStream有一个flush()方法用来将缓存区的数据强制输出完。BufferedOutputStream 类也有两个构造方法。 BufferedOutputStream(OutputStream in) BufferedOutputStream(OutputStream in.int size) 第一种构造方法创建一个32个字节的缓存区,第二种形式以指定的大小来创建缓存区。 flush()方法就是用于即使缓存区没有满的情况下,也将缓存区的内容强制写入外设,习惯称这个过程为刷新。flush()方法只对使用缓存区的0utputStream类的子类有效。当调用close()方法时,系统在关闭流之前,也会将缓存区中信息刷新到磁盘文件中。 11.5.2 BufferedReader类与BufferedWriter类 BufferedReader类与BufferedWriter类分别继承Reader类与Writer类。这两个类同样具有内部缓存机制,并可以以行为单位进行输入输出。 根据BufferedReader类的特点,总结出如图11—12所示的字符数据读取文件的过程。 BufferedReader类常用的方法如下所示。 read()方法:读取单个字符。 readLine()方法:读取一个文本行,并将其返回为字符串;若无数据可读,则返回null。 write(String S,int off,int len)方法:写入字符串的某一部分。 flush()方法:刷新该流的缓存。 newLine()方法:写入一个行分隔符。 在使用BufferedWriter类的Write()方法时,数据并没有立刻被写入至输出流中,而是首先进入缓存区中。如果想立刻将缓存区中的数据写人输出流中,一定要调用flush()方法。