《Java程序设计案例教程》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:刘新主编
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2017
  • ISBN:9787111574361
  • 页数:304 页
图书介绍:本书根据作者多年的教学经验和软件开发经验总结而来,以大量的实例进行示范和解说,通俗易懂而又有一定的深度。本书共分为12章,首先讲述了Java的基本知识,包括JDK的使用、数据类型、流程控制等基础语法知识。然后介绍了面向对象的编程知识,包括封装和继承、抽象类、接口、内部类、重载、覆盖等,同时还介绍了Java提供的一些实用工具类,包括数组、字符串等。随后介绍了Java中的一些高级技术,包括异常处理、集合、泛型等。最后介绍了到实际工程开发所需要的一些知识,主要是文件读写、多线程设计和网络程序设计。本书既可作为高等学校计算机及相关专业的Java程序设计和面向对象课程的入门教材,亦可作为使用Java语言进行工程开发的技术人员的参考用书。

第1章 开发运行环境 1

1.1 Java的运行环境与虚拟机 1

1.2 Java的开发环境 2

1.2.1 JDK的安装 3

1.2.2 设置系统环境变量 4

1.2.3 编译命令的使用 5

1.2.4 解释执行命令的使用 7

1.2.5 一个简单的集成开发工具 8

1.3 案例:一个简单的Java应用程序 10

第2章 语言基础 13

2.1 Java语言概述 13

2.1.1 Java语言特点 13

2.1.2 Java程序的构成 14

2.1.3 程序文本风格 15

2.2 数据及类型转换 16

2.2.1 基本数据类型 17

2.2.2 常量 18

2.2.3 变量 20

2.2.4 数据类型转换 22

2.3 运算符与表达式 24

2.3.1 算术运算符和算术表达式 24

2.3.2 关系运算符和关系表达式 27

2.3.3 逻辑运算符和逻辑表达式 28

2.3.4 条件运算符和条件表达式 30

2.3.5 位运算符和位运算表达式 31

2.3.6 赋值运算符和赋值表达式 34

2.3.7 表达式的求值顺序 35

2.4 流程控制语句 36

2.4.1 顺序语句 36

2.4.2 分支语句 37

2.4.3 循环语句 44

2.5 控制台输入和输出 50

2.5.1 控制台输入类Scanner 50

2.5.2 格式化输出printf 51

2.6 应用实例 53

2.6.1 案例1:求最大公约数和最小公倍数 53

2.6.2 案例2:Fibonacci数列 54

2.6.3 案例3:拆分数字 55

2.6.4 案例4:输出九九乘法表 56

第3章 面向对象基础 57

3.1 面向对象的基本概念 57

3.1.1 对象 57

3.1.2 类 58

3.1.3 消息 59

3.1.4 面向对象的4个基本特征 59

3.2 类与对象 61

3.2.1 类的声明和定义 61

3.2.2 对象的使用 63

3.3 成员变量 65

3.3.1 成员变量的定义 65

3.3.2 成员变量的访问权限 66

3.3.3 实例成员变量和静态成员变量 69

3.4 成员方法 71

3.4.1 方法的声明和定义 72

3.4.2 方法的调用 76

3.4.3 隐含参数this 81

3.5 构造方法 82

3.5.1 无参数构造方法的定义和使用 83

3.5.2 带参数构造方法的定义和使用 84

3.5.3 this关键字和构造方法的调用 85

3.6 静态方法 86

3.6.1 静态方法的声明和定义 86

3.6.2 静态方法和实例方法的区别 86

3.6.3 静态代码块 88

3.6.4 再论静态成员变量 89

3.7 main()方法和命令行参数 91

3.8 案例:学生类示例 92

第4章 常用工具类 94

4.1 数组 94

4.1.1 一维数组 94

4.1.2 二维数组 98

4.1.3 for-each循环 101

4.1.4 案例1:数组排序 101

4.1.5 案例2:杨辉三角 104

4.2 字符串 105

4.2.1 String对象 105

4.2.2 StringBuffer对象 108

4.2.3 案例3:字符串排序 109

4.3 Runtime类 110

4.3.1 内存管理 111

4.3.2 执行其他程序 112

4.4 System类 113

4.4.1 利用currentTimeMillis()记录程序执行的时间 114

4.4.2 利用exit()退出虚拟机 115

4.4.3 获取环境属性 115

4.5 Math类 117

4.5.1 利用随机数求π值 117

4.5.2 利用三角函数求π值 118

4.5.3 指数和对数函数 118

4.5.4 取整函数 119

4.6 Random类的使用 119

4.7 日历类 120

4.7.1 Date类的使用 121

4.7.2 使用SimpleDateFormat格式化输出时间 121

4.7.3 Calendar类的特色 124

4.7.4 案例4:利用GregorianCalendar输出日历 126

4.8 Formatter类 128

4.8.1 Formatter类的简单使用 129

4.8.2 时间格式转换符详解 130

4.8.3 格式说明符语法图 132

4.9 类型包装器 132

第5章 继承和多态 137

5.1 继承的基本原理 137

5.2 子类对父类的继承 138

5.3 继承机制 139

5.3.1 属性的隐藏 140

5.3.2 方法的覆盖 142

5.3.3 构造方法没有继承机制 144

5.3.4 父类变量引用子类对象 146

5.3.5 继承的内部处理 147

5.4 super关键字 148

5.4.1 使用super引用父类的成员 148

5.4.2 使用super调用父类的构造方法 149

5.5 接口与多重继承 150

5.5.1 接口的定义 150

5.5.2 接口的继承 151

5.5.3 接口的实现 153

5.6 重载 154

5.6.1 普通方法的重载 154

5.6.2 构造方法的重载 156

5.6.3 重载的解析 157

5.6.4 重载与覆盖的区别 159

5.7 运行时多态 160

5.7.1 实例方法的运行时多态 160

5.7.2 成员变量运行时的表现 163

5.7.3 静态方法运行时的表现 164

5.8 案例:图形类示例 165

第6章 特殊类与包 169

6.1 抽象类与抽象方法 169

6.1.1 抽象方法的声明 169

6.1.2 抽象类的定义 169

6.1.3 抽象方法与回调函数 170

6.2 最终类与最终方法 171

6.3 内部类 172

6.3.1 内部类的定义 172

6.3.2 内部类访问外部类的成员 175

6.3.3 内部类之间的相互使用 177

6.3.4 在外部使用内部类 178

6.3.5 匿名内部类 179

6.3.6 内部类的作用 180

6.4 包 181

6.4.1 包的创建 181

6.4.2 包的使用 183

6.4.3 JAR文件的创建和使用 184

6.4.4 JDK中的常用包 186

第7章 异常处理 187

7.1 异常处理机制简介 187

7.1.1 异常处理的作用 187

7.1.2 Java的异常处理机制 188

7.1.3 异常类的层次结构 189

7.2 异常处理类型 189

7.2.1 运行时异常 189

7.2.2 检查型异常 190

7.2.3 自定义异常 191

7.3 异常处理机制 191

7.3.1 捕获和处理异常 191

7.3.2 抛出异常 195

7.3.3 try-catch-finally语句的嵌套 197

7.3.4 try-with-resource语句 199

7.3.5 用户自定义异常 200

7.4 案例:使用异常机制来实现键盘输入 201

第8章 输入和输出 202

8.1 文件和输入/输出流 202

8.2 字节 流 202

8.2.1 InputStream中的方法 203

8.2.2 OutputStream中的方法 203

8.2.3 文件输入流FileInputStream 203

8.2.4 文件输出流FileOutputStream 204

8.2.5 案例1:保存用户输入的数据到文件 204

8.2.6 案例2:显示文件内容 205

8.2.7 案例3:文件的复制 207

8.3 字符流 208

8.3.1 InputStreamReader类中的方法 208

8.3.2 OutputStreamWriter类中的方法 208

8.3.3 案例4:保存键盘输入到文件 209

8.3.4 案例5:文件编码转换 210

8.4 文件属性处理 211

8.4.1 File类中的方法 211

8.4.2 案例6:文件列表 212

8.5 随机访问文件 213

8.5.1 Random AccessFile类中的方法 214

8.5.2 案例7:文件加密 215

第9章 多线程 217

9.1 线程的概念 217

9.1.1 多线程的特点 217

9.1.2 线程的状态 218

9.2 Thread类 219

9.2.1 Thread类的构造方法 219

9.2.2 Thread类的常用方法 219

9.3 多线程程序的编写 220

9.3.1 利用Thread的子类创建线程 220

9.3.2 实现Runnahle接口创建线程 222

9.3.3 使用isAlive()和join()等待子线程结束 223

9.3.4 设置线程优先级 225

9.4 线程的通信与协调 226

9.4.1 线程的互斥 227

9.4.2 线程的同步 230

9.4.3 暂停、恢复和停止线程 233

9.4.4 案例:生产者-消费者问题 234

第10章 泛型 237

10.1 泛型概述 237

10.1.1 案例1:一个关于泛型的简单例子 237

10.1.2 案例2:带两个类型参数的泛型类 240

10.2 泛型的基础知识 241

10.2.1 有界类型 241

10.2.2 通配符参数 242

10.2.3 泛型方法 244

10.2.4 泛型接口 246

10.3 泛型类的继承 248

10.3.1 以泛型类为父类 248

10.3.2 以非泛型类为父类 249

10.3.3 运行时类型识别 250

10.3.4 强制类型转换 251

10.3.5 继承规则 252

10.4 泛型的本质 252

10.4.1 擦拭 253

10.4.2 擦拭带来的错误 254

10.5 泛型的局限 255

10.5.1 不能使用基本类型 255

10.5.2 不能使用泛型类异常 255

10.5.3 不能使用泛型数组 256

10.5.4 不能实例化参数类型对象 256

第11章 集合 257

11.1 集合接口与抽象类 257

11.1.1 Collection接口 257

11.1.2 Iterator接口 258

11.1.3 AbstractCollection抽象类 259

11.1.4 几个常用术语 259

11.2 集合类的使用 260

11.2.1 顺序表(ArrayList)的使用 260

11.2.2 链表(LinkedList)的使用 262

11.2.3 优先队列(PriorityQueue)的使用 266

11.2.4 哈希集合(HashSet)的使用 269

11.2.5 哈希映射类(HashMap)的使用 271

11.2.6 有序树(TreeSet)的使用 273

11.2.7 有序树映射类(TreeMap)的使用 275

11.3 常用算法 277

11.3.1 Collections中的简单算法 277

11.3.2 排序 279

11.3.3 二分查找 280

11.4 遗留的类和接口 281

11.4.1 Enumeration接口简介 282

11.4.2 向量类(Vector)简介 282

11.4.3 栈(Stack)使用示例 284

11.4.4 字典(Dictionary)简介 285

11.4.5 哈希表(Hashtable)简介 285

第12章 网络程序设计 286

12.1 与网络相关的常用术语 286

12.2 InetAddress类使用示例 288

12.3 URL类和URLConnection类的使用 289

12.3.1 案例1:用URL类实现一个简单的浏览器 289

12.3.2 案例2:用URLConnection类实现文件下载 291

12.4 Socket的使用 292

12.4.1 客户端创建Socket对象 293

12.4.2 服务器端创建ServerSocket对象 293

12.4.3 案例3:一对一的通信 294

12.4.4 案例4:一对多的通信 296

12.4.5 案例5:简单的聊天程序 297

12.5 UDP数据报通信 301

12.5.1 DatagramSocket的使用方法 301

12.5.2 DatagramPacket的使用方法 301

12.5.3 案例6:用UDP实现的聊天程序 302