《Java语言程序设计》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:郭克华主编;段桂华副主编
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2012
  • ISBN:9787302263524
  • 页数:439 页
图书介绍:本书共30章,涵盖了JavaSE开发环境配置、程序设计基础、面向对象、工具API、GUI开发等。本书使用的开发环境是JDK1.6+Eclipse3.3,逐步引导读者从基础到各个知识点的学习。

第1部分 入门 2

第1章 Java入门 2

本章术语 2

1.1 认识Java 2

1.1.1 认识编程语言 2

1.1.2 Java的来历 3

1.1.3 Java为什么流行 4

1.1.4 Java的三个版本 5

1.1.5 编程前的准备工作 6

1.2 安装JDK 6

1.2.1 获取JDK 6

1.2.2 安装JDK 6

1.2.3 安装目录介绍 7

1.2.4 环境变量设置 8

1.3 开发第一个Java程序 9

1.3.1 如何编写源代码 9

1.3.2 如何将源代码编译成.class文件 10

1.3.3 如何执行.class文件 10

1.3.4 新手常见错误 11

1.4 用Eclipse开发Java程序 12

1.4.1 什么是Eclipse 12

1.4.2 安装Eclipse 12

1.4.3 如何建立项目 13

1.4.4 如何开发Java程序 14

1.4.5 如何维护项目 16

本章知识体系 17

第2部分 程序设计基础第2章 程序设计基础:变量及其运算 20

本章术语 20

2.1 认识变量 20

2.1.1 什么是变量 20

2.1.2 变量有哪些类型 21

2.2 如何使用变量 22

2.2.1 如何使用整型变量 22

2.2.2 如何使用浮点型变量 23

2.2.3 如何使用字符型变量 24

2.2.4 如何使用布尔型变量 26

2.2.5 基本数据类型之间的类型转换 26

2.2.6 基本数据类型和字符串之间的转换 27

2.2.7 变量的作用范围 29

2.3 注释的书写 29

2.4 Java中的运算 30

2.4.1 算术运算 30

2.4.2 赋值运算 32

2.4.3 关系运算 33

2.4.4 逻辑运算 33

2.4.5 运算符的优先级 34

本章知识体系 35

第3章 程序设计基础:流程控制和数组 36

本章术语 36

3.1 判断结构 36

3.1.1 为什么需要判断结构 36

3.1.2 if结构 36

3.1.3 switch结构 40

3.2 认识循环结构 41

3.2.1 为什么需要循环结构 41

3.2.2 while循环 42

3.2.3 do-while循环 43

3.2.4 for循环 43

3.2.5 循环嵌套 44

3.2.6 break和continue 45

3.3 数组 47

3.3.1 为什么需要数组 47

3.3.2 如何定义数组 47

3.3.3 如何使用数组 48

3.3.4 数组的引用性质 50

3.3.5 数组的应用 50

3.3.6 多维数组 51

本章知识体系 53

第4章 实践指导1 54

术语复习 54

4.1 关于变量和数据类型的实践 54

4.2 流程控制和数组的综合实践 56

第3部分 面向对象 66

第5章 面向对象编程1 66

本章术语 66

5.1 认识类和对象 66

5.1.1 为什么需要类 67

5.1.2 如何定义类 67

5.1.3 如何使用类实例化对象 67

5.1.4 如何访问对象中的成员变量 68

5.1.5 对象的引用性质 69

5.2 认识成员函数 70

5.2.1 为什么需要函数 70

5.2.2 如何定义和使用成员函数 71

5.2.3 函数参数的传递 74

5.2.4 认识函数重载 76

5.3 认识构造函数 77

5.3.1 为什么需要构造函数 77

5.3.2 如何定义和使用构造函数 78

本章知识体系 79

第6章 面向对象编程2 80

本章术语 80

6.1 静态变量和静态函数 80

6.1.1 为什么需要静态变量 80

6.1.2 静态变量的常见应用 82

6.1.3 认识静态函数 84

6.1.4 静态代码块 84

6.2 使用封装 85

6.2.1 为什么需要封装 85

6.2.2 如何实现封装 86

6.3 使用包 87

6.3.1 为什么需要包 87

6.3.2 如何将类放在包中 87

6.3.3 如何访问包中的类 89

6.4 使用访问控制修饰符 91

6.4.1 什么是访问控制修饰符 91

6.4.2 类的访问控制修饰符 91

6.4.3 成员的访问控制修饰符 92

6.5 使用类中类 92

本章知识体系 93

第7章 面向对象编程3 94

本章术语 94

7.1 使用继承 94

7.1.1 为什么需要继承 94

7.1.2 如何实现继承 95

7.1.3 继承的底层本质 97

7.2 成员的覆盖 99

7.2.1 什么是成员覆盖 99

7.2.2 成员覆盖有何作用 100

7.3 使用多态性 102

7.3.1 什么是多态 102

7.3.2 如何使用多态性 102

7.3.3 父子类对象的类型转换 104

7.4 抽象类和接口 106

7.4.1 为什么需要抽象类 106

7.4.2 为什么需要接口 107

7.5 其他内容 108

7.5.1 final关键字 108

7.5.2 Object类 108

7.6 一些工具的使用 110

7.6.1 将字节码打包发布 110

7.6.2 文档的使用 113

本章知识体系 115

第8章 实践指导2 116

术语复习 116

8.1 单例模式的设计 116

8.1.1 需求简介 116

8.1.2 不用单例模式的效果 117

8.1.3 最原始的单例模式 117

8.1.4 首次改进 118

8.1.5 再次改进 119

8.1.6 思考题 120

8.2 利用继承和多态扩充程序功能 120

8.2.1 需求简介 120

8.2.2 实现方法 121

8.2.3 出现的问题 122

8.2.4 改进 122

8.2.5 测试 123

第4部分 工具API 126

第9章 Java异常处理 126

本章术语 126

9.1 认识异常 126

9.1.1 生活中的异常 126

9.1.2 软件中的异常 127

9.1.3 为什么要处理异常 128

9.1.4 异常机理 129

9.1.5 常见异常 130

9.2 异常的就地捕获 131

9.2.1 为什么要就地捕获 131

9.2.2 如何就地捕获异常 131

9.2.3 如何捕获多种异常 133

9.2.4 用finally保证安全性 135

9.3 异常的向前抛出 137

9.3.1 为什么要向前抛出 137

9.3.2 如何向前抛出 137

9.4 自定义异常 141

9.4.1 为什么需要自定义异常 141

9.4.2 如何自定义异常 142

本章知识体系 144

第10章 Java常用API1 145

本章术语 145

10.1 数值运算 145

10.1.1 用Math类实现数值运算 145

10.1.2 实现随机数 147

10.2 用String类进行字符串处理 148

10.3 用StringBuffer类进行字符串处理 151

10.4 基本数据类型的包装类 153

10.4.1 认识包装类 153

10.4.2 通过包装类进行数据转换 153

10.5 常用系统类 154

10.5.1 认识System类 154

10.5.2 认识Runtime类 155

本章知识体系 155

第11章 Java常用API2 156

本章术语 156

11.1 认识Java集合 156

11.1.1 为什么需要集合 156

11.1.2 Java中的集合 157

11.2 使用一维集合 158

11.2.1 认识一维集合 158

11.2.2 使用List集合 158

11.2.3 使用Set集合 160

11.2.4 使用Collections类对集合进行处理 163

11.2.5 使用泛型简化集合操作 164

11.3 Java中的二维集合 165

11.3.1 使用Map集合 165

11.3.2 使用Hashtable和Properties 167

11.4 日期操作 167

11.4.1 认识Date类 167

11.4.2 认识Calendar类 168

11.4.3 如何格式化日期 169

11.4.4 更进一步:如何格式化数值 170

本章知识体系 171

第12章 Java多线程开发 172

本章术语 172

12.1 认识多线程 172

12.1.1 为什么需要多线程 172

12.1.2 继承Thread类开发多线程 174

12.1.3 实现Runnable接口开发多线程 176

12.1.4 两种方法有何区别 177

12.2 如何控制线程运行 178

12.2.1 为什么要控制线程运行 178

12.2.2 传统方法的安全问题 179

12.2.3 如何控制线程的运行 179

12.3 线程协作安全 181

12.3.1 什么是线程协作 181

12.3.2 一个有问题的案例 181

12.3.3 如何解决 182

12.4 线程同步安全 183

12.4.1 什么是线程同步 183

12.4.2 一个有问题的案例 183

12.4.3 如何解决 185

12.4.4 小心线程死锁 187

12.5 认识定时器 189

12.5.1 为什么需要定时器 189

12.5.2 如何使用定时器 189

本章知识体系 191

第13章 Java IO操作 192

本章术语 192

13.1 认识IO操作 192

13.2 用File类操作文件 193

13.2.1 认识File类 193

13.2.2 使用File类操作文件 194

13.2.3 使用File类操作目录 195

13.3 字节流的输入输出 196

13.3.1 认识字节流 196

13.3.2 如何读写文件 196

13.3.3 如何读写对象 200

13.4 字符流的输入输出 202

13.4.1 认识字符流 202

13.4.2 如何读写文件 202

13.4.3 如何进行键盘输入 205

13.5 和IO操作相关的其他类 206

13.5.1 用RandomAccessFile类进行文件读写 206

13.5.2 使用Properties类 208

本章知识体系 210

第14章 实践指导3 211

术语复习 211

14.1 字符频率统计软件 211

14.1.1 软件功能简介 211

14.1.2 重要技术 212

14.1.3 项目结构 212

14.1.4 代码编写 213

14.1.5 思考题 215

14.2 文本翻译软件 215

14.2.1 软件功能简介 215

14.2.2 重要技术 216

14.2.3 项目结构 216

14.2.4 代码编写 216

14.2.5 思考题 218

14.3 用享元模式优化程序性能 218

14.3.1 为什么需要享元模式 218

14.3.2 重要技术 219

14.3.3 代码编写 219

14.3.4 思考题 221

第5部分 GUI开发 224

第15章 用Swing开发GUI程序 224

本章术语 224

15.1 认识GUI和Swing 224

15.1.1 什么是GUI 224

15.1.2 什么是Swing 225

15.2 使用窗口 225

15.2.1 用JFrame类开发窗口 225

15.2.2 用JDialog类开发窗口 226

15.3 使用控件 227

15.3.1 什么是控件 227

15.3.2 标签、按钮、文本框和密码框 228

15.3.3 单选按钮、复选框和下拉列表框 230

15.3.4 菜单 231

15.3.5 使用JOptionPane 233

15.3.6 其他控件 234

15.4 颜色、字体和图像 235

15.4.1 如何使用颜色 235

15.4.2 如何使用字体 236

15.4.3 如何使用图片 237

15.5 几个有用的功能 239

15.5.1 如何设置界面的显示风格 239

15.5.2 如何获取屏幕大小 240

15.5.3 如何用默认应用程序打开文件 240

15.5.4 如何将程序显示为系统托盘 241

本章知识体系 241

第16章 Java界面布局管理 242

本章术语 242

16.1 认识布局管理 242

16.1.1 为什么需要布局管理 242

16.1.2 认识LayoutManager 243

16.2 使用FlowLayout 244

16.2.1 什么是FlowLayout 244

16.2.2 如何使用FlowLayout 244

16.3 使用GridLayout 245

16.3.1 什么是GridLayout 245

16.3.2 如何使用GridLayout 246

16.4 使用BorderLayout 247

16.4.1 什么是BorderLayout 247

16.4.2 如何使用BorderLayout 248

16.5 综合案例:计算器 249

16.5.1 案例需求 249

16.5.2 关键技术 249

16.5.3 代码编写 250

16.6 使用空布局 251

16.6.1 什么是空布局 251

16.6.2 如何使用空布局 252

本章知识体系 253

第17章 Java事件处理 254

本章术语 254

17.1 认识事件处理 254

17.1.1 什么是事件 254

17.1.2 事件处理代码的编写 255

17.1.3 另外几种编程风格 257

17.2 处理ActionEvent 258

17.2.1 什么情况发出ActionEvent 258

17.2.2 使用ActionEvent解决实际问题 259

17.3 处理FocusEvent 260

17.3.1 什么情况发出FocusEvent 260

17.3.2 使用FocusEvent解决实际问题 260

17.4 处理KeyEvent 261

17.4.1 什么情况发出KeyEvent 261

17.4.2 使用KeyEvent解决实际问题 261

17.5 处理MouseEvent 262

17.5.1 什么情况发出MouseEvent 262

17.5.2 使用MouseEvent解决实际问题 263

17.6 处理WindowEvent 264

17.6.1 什么情况发出WindowEvent 264

17.6.2 使用WindowEvent解决实际问题 265

17.7 使用Adapter简化开发 266

本章知识体系 267

第18章 实践指导4 268

术语复习 268

18.1 用户管理系统功能简介 268

18.2 关键技术 269

18.2.1 如何组织界面 269

18.2.2 如何访问文件 270

18.2.3 如何保持状态 270

18.2.4 还有哪些公共功能 271

18.3 代码编写 271

18.3.1 编写util包中的类 271

18.3.2 编写frame包中的类 273

18.3.3 编写主函数所在的类 278

18.4 思考题 278

第6部分 Java图形开发第19章 Java绘图:基础知识 280

本章术语 280

19.1 认识Java绘图 280

19.1.1 为什么要学习绘图 280

19.1.2 如何实现绘图 281

19.2 用Graphics进行绘图 282

19.2.1 什么是Graphics 282

19.2.2 如何使用Graphics 283

19.2.3 用Graphics实现绘图 286

19.2.4 一个综合案例 287

19.3 如何绘字符串 289

19.3.1 为什么需要绘字符串 289

19.3.2 如何绘字符串 289

19.3.3 案例:产生验证码 289

19.4 如何绘图片 291

19.4.1 为什么需要绘图片 291

19.4.2 如何绘图片 291

19.4.3 如何进行图片裁剪和缩放 292

19.4.4 如何进行图片旋转 293

本章知识体系 294

第20章 Java绘图:高级知识 295

本章术语 295

20.1 结合键盘事件进行绘图 295

20.1.1 实例需求 295

20.1.2 复习键盘事件 295

20.1.3 代码编写 296

20.1.4 解决重绘问题 297

20.2 结合鼠标事件进行绘图 298

20.2.1 实例需求 298

20.2.2 复习鼠标事件 298

20.2.3 代码编写 298

20.3 动画制作 300

20.3.1 实例需求 300

20.3.2 关键技术 300

20.3.3 代码编写 301

20.3.4 如何使用双缓冲保存图片到文件 303

本章知识体系 306

第21章 实践指导5 307

术语复习 307

21.1 卡通时钟 307

21.1.1 软件功能简介 307

21.1.2 重要技术 307

21.1.3 代码编写 308

21.1.4 思考题 310

21.2 拼图游戏 311

21.2.1 软件功能简介 311

21.2.2 重要技术 311

21.2.3 代码编写 316

21.2.4 思考题 319

第7部分 Java网络编程第22章 用TCP开发网络应用程序 322

本章术语 322

22.1 认识网络编程 322

22.1.1 什么是网络应用程序 322

22.1.2 认识IP地址和端口 323

22.1.3 客户端和服务器 325

22.2 用客户端连到服务器 325

22.2.1 案例介绍 325

22.2.2 如何实现客户端连接到服务器 326

22.2.3 代码编写 328

22.3 利用TCP实现双向聊天系统 329

22.3.1 案例介绍 329

22.3.2 如何实现双向聊天 329

22.3.3 代码编写 332

22.4 利用TCP实现多客户聊天系统 334

22.4.1 案例介绍 334

22.4.2 编写服务器程序 334

22.4.3 编写客户端程序 337

本章知识体系 338

第23章 用UDP开发网络应用程序 339

本章术语 339

23.1 利用UDP实现双向聊天系统 339

23.1.1 案例介绍 339

23.1.2 服务器和客户端是如何交互的 340

23.1.3 如何收发信息 341

23.1.4 代码编写 345

23.2 利用UDP实现多客户聊天系统 347

23.2.1 案例介绍 347

23.2.2 编写服务器程序 348

23.2.3 编写客户端程序 350

本章知识体系 351

第24章 URL编程和Applet开发 352

本章术语 352

24.1 认识URL编程 352

24.1.1 什么是URL 352

24.1.2 认识URL类 353

24.1.3 如何获取网页的内容 353

24.2 认识Applet 355

24.2.1 什么是Applet 355

24.2.2 如何开发Applet 355

24.2.3 如何使用Applet 356

24.3 深入理解Applet 356

24.3.1 Applet是如何运行的 356

24.3.2 Applet功能的限制 357

24.3.3 如何向Applet内传参数 357

本章知识体系 358

第25章 实践指导6 359

术语复习 359

25.1 网络打字游戏功能简介 359

25.2 关键技术 360

25.2.1 如何组织界面 360

25.2.2 客户端如何掉下字母 360

25.2.3 客户端如何实现加减分数 361

25.2.4 客户端如何判断输了 362

25.3 代码编写 363

25.3.1 服务器端 363

25.3.2 客户端 364

第8部分 Java密码编程第26章 Java加密解密 370

本章术语 370

26.1 认识加密 370

26.1.1 为什么需要加密 370

26.1.2 认识加密算法和密钥 371

26.2 实现对称加密 372

26.2.1 什么是对称加密 372

26.2.2 用Java实现对称加密 372

26.3 实现非对称加密 374

26.3.1 什么是非对称加密 374

26.3.2 用Java实现非对称加密 375

26.4 实现单向加密 377

26.4.1 什么是单向加密 377

26.4.2 用Java实现MD5 377

本章知识体系 379

第27章 Java数字签名 380

本章术语 380

27.1 认识数字签名 380

27.1.1 为什么需要数字签名 380

27.1.2 数字签名的过程 381

27.2 实现数字签名 381

27.2.1 发送方生成签名 381

27.2.2 接收方验证签名 383

27.3 利用数字签名解决实际问题 384

27.3.1 解决篡改问题 384

27.3.2 解决抵赖问题 387

本章知识体系 389

第9部分 Java反射 392

第28章 Java反射技术 392

本章术语 392

28.1 为什么要学习反射 392

28.1.1 引入配置文件 392

28.1.2 配置文件遇到的问题 393

28.2 认识Class类 394

28.2.1 什么是Class类 394

28.2.2 如何获取一个类对应的Class对象 394

28.2.3 如何获取类中的成员信息 396

28.3 通过反射机制访问对象 400

28.3.1 如何实例化对象 400

28.3.2 如何给成员变量赋值 402

28.3.3 如何调用成员函数 402

28.4 何时使用反射 403

本章知识体系 404

第29章 实践指导7 405

术语复习 405

29.1 什么是框架 405

29.2 动态异常处理框架 405

29.2.1 框架功能简介 405

29.2.2 重要技术 407

29.2.3 框架代码编写 408

29.2.4 使用该框架 409

29.3 动态对象组装框架 412

29.3.1 框架功能简介 412

29.3.2 引入工厂 413

29.3.3 引入配置文件 414

29.3.4 重要技术 415

29.3.5 框架代码编写 415

29.3.6 使用该框架 416

第10部分 综合案例第30章 综合案例:用TCP技术开发即时通信软件 420

术语复习 420

30.1 即时通信软件功能简介 420

30.1.1 服务器界面 420

30.1.2 客户登录和注册 420

30.1.3 消息收发界面 421

30.1.4 在线名单刷新 422

30.2 项目关键技术 422

30.2.1 传输消息如何表示 422

30.2.2 客户信息如何表示 424

30.2.3 客户文件如何保存在服务器端 425

30.2.4 如何读写客户文件 425

30.2.5 基本模块结构 426

30.3 编写服务器端 427

30.3.1 准备工作 427

30.3.2 编写app.Server类 427

30.3.3 编写app.ChatThread类 428

30.3.4 编写main.Main类 431

30.4 编写客户端 431

30.4.1 准备工作 431

30.4.2 编写app.LoginFrame类 431

30.4.3 编写app.ChatFrame类 433

30.4.4 编写app.RegisterFrame类 436

30.4.5 编写main.Main类 438

30.5 思考题 439