当前位置:首页 > 工业技术
Absolute Java  中文版  第6版
Absolute Java  中文版  第6版

Absolute Java 中文版 第6版PDF电子书下载

工业技术

  • 电子书积分:25 积分如何计算积分?
  • 作 者:(美)Walter Savitch(沃尔特·萨维奇),Kenrick Mock(肯里克·莫克)著;师蓉译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2018
  • ISBN:9787121328664
  • 页数:1000 页
图书介绍:《完美Java(第6 版)》侧重于面向对象设计,通过浅显易懂的语言和代码,很好地平衡了完整实例和解释性讨论,并围绕着Java 语言的特性全面透彻地介绍诸多编程技术。书中全面介绍了Java 语言已经实现的封装、继承和多态性技术,并在介绍Swing GUI 的时候提及事件驱动的编程并提供了很多练习。在介绍UML 和模式的同时进一步介绍了OOP。本书不仅适合初学者使用,还可以作为使用Java 的后续计算机科学课程的参考书。
《Absolute Java 中文版 第6版》目录
标签:中文版

第1章 入门知识 1

1.1 Java简介 2

Java语言的起源 2

对象和方法 3

小程序(applet) 4

一个Java应用程序示例 4

字节码和Java虚拟机 7

类装载器 9

编译一个Java程序或类 9

运行一个Java程序 9

小贴士:错误消息 10

1.2 表达式和赋值语句 11

标识符 11

变量 12

赋值语句 14

小贴士:初始化变量 15

更多赋值语句知识 16

赋值兼容性 17

常量 18

算数运算符和表达式 19

括号和优先级规则 20

整数和浮点数除法 22

陷阱:浮点数的舍入错误 22

陷阱:整数相除 23

类型转换 24

自增运算符和自减运算符 25

1.3 String类 27

字符串常量和变量 27

字符串连接 28

类 29

String类的方法 30

转义字符 34

字符串处理 35

Unicode字符集 36

1.4 程序风格 37

命名常量 37

Java拼写约定 39

注释 40

缩进 41

本章小结 41

自测题答案 42

编程项目 44

第2章 流程控制 47

2.1 屏幕输出 48

System.out.println 48

小贴士:编辑输出格式的不同方法 50

使用printf编辑输出格式 51

小贴士:用printf编辑金额格式 54

小贴士:遗留代码 55

使用NumberFormat编辑金额输出格式 56

导入包和类 58

DecimalFormat类 59

2.2 使用Scanner类进行控制台输入 62

Scanner类 63

陷阱:行终止符′\n′的处理 67

空字符串 68

小贴士:输入提示 68

小贴士:输入反馈 68

示例:自助结账程序 70

其他输入分隔符 70

2.3 文件输入简介 72

用Scanner类进行文本文件输入 72

本章小结 75

自测题答案 75

编程项目 77

第3章 控制流 81

3.1 分支机制 82

if-else语句 82

省略else 83

复合语句 83

小贴士:放置花括号 84

嵌套语句 85

多分支if-else语句 86

示例:州所得税 86

switch语句 88

陷阱:忘记switch语句中的break 91

条件运算符 92

3.2 布尔表达式 92

简单布尔表达式 93

陷阱:用=代替== 93

陷阱:使用==比较字符串 94

字典顺序和字母顺序 95

建立布尔表达式 97

陷阱:不等式串 98

计算布尔表达式 98

小贴士:命名布尔boolean变量 101

短路求值与完整求值 101

优先级和结合规则 102

3.3 循环 107

while语句和do-while语句 108

算法和伪代码 110

示例:分数列表的平均分 112

for语句 113

for语句中的逗号 115

小贴士:重复N次循环 116

陷阱:for语句中多余的分号 116

陷阱:无限循环 117

嵌套循环 118

break语句和continue语句 120

exit语句 121

3.4 调试 122

循环bug 122

跟踪变量 122

常规调试技术 123

示例:调试一个输入验证循环 124

预防性编码 127

断言检查 127

3.5 生成随机数 129

Random对象 130

Math.random( )方法 131

本章小结 132

自测题答案 132

编程项目 136

第4章 类的定义Ⅰ 141

4.1 类的定义概述 142

实例变量和方法 145

方法续论 147

小贴士:任何方法都能用作void方法 150

局部变量 152

块 152

小贴士:在一个for语句中声明变量 153

原始类型参数 154

陷阱:术语“形参”和“实参”的使用 159

类参数的简单示例 160

this参数 160

返回布尔值的方法 162

方法equals和toString 164

递归方法 166

小贴士:对方法进行测试 167

4.2 信息的隐藏和封装 168

修饰符public和private 169

示例:另一个日期类 170

get和set方法 171

小贴士:一个类可以访问该类所有对象的私有成员 174

小贴士:set方法可以返回一个布尔值 175

前置条件和后置条件 176

4.3 重载 177

重载的规则 177

陷阱:重载与自动类型转换 180

陷阱:不能根据返回类型进行重载 182

4.4 构造函数 183

构造函数的定义 183

小贴士:你可以在构造函数中调用另一个方法 190

小贴士:构造函数带有一个this参数 190

小贴士:添加一个无参数构造函数 190

示例:日期类的最终版本 191

默认变量初始化 192

另一种初始化实例变量的方法 192

示例:一个宠物记录类 193

StringTokenizer类 196

本章小结 200

自测题答案 201

编程项目 204

第5章 类的定义Ⅱ 211

5.1 静态方法和静态变量 212

静态方法 212

陷阱:在静态方法中调用非静态方法 215

小贴士:你可以在任何类中放置main函数 215

静态变量 218

Math类 222

封装类 225

自动装箱和拆箱 226

封装类中的静态方法 227

陷阱:封装类没有无参数构造函数 229

5.2 引用和类参数 231

变量和内存 231

引用 232

类参数 237

陷阱:对类类型的变量使用=和== 240

常量null 241

陷阱:空指针异常 242

new运算符和匿名对象 242

示例:键盘输入的另一种方法 243

小贴士:使用静态导入 245

5.3 引用的使用和滥用 246

示例:Person类 246

陷阱:null可以作为方法的参数 251

拷贝构造函数 253

陷阱:隐私泄露 255

可变类和不可变类 258

小贴士:深拷贝vs.浅拷贝 259

小贴士:假设你的同事是恶意的 260

5.4 包和javadoc 260

包和import语句 261

java.lang包 262

包名和目录 262

陷阱:子类不是自动导入的 264

默认包 264

陷阱:不要在类路径中包含当前目录 264

编译时指定类路径 265

命名冲突 266

javadoc简介 266

为javadoc注释类 267

运行javadoc 268

本章小结 269

自测题答案 270

编程项目 273

第6章 数组 279

6.1 数组简介 280

数组的创建和访问 280

length实例变量 283

小贴士:在数组中使用for循环 284

陷阱:数组下标总是从0开始 285

陷阱:数组越界 285

数组的初始化 285

陷阱:字符数组不是字符串 287

6.2 数组和引用 287

数组是对象 288

陷阱:具有类基本类型的数组 289

数组参数 289

陷阱:在数组中使用=和== 291

main方法的参数 294

返回数组的方法 295

6.3 用数组进行编程 297

部分填充数组 297

示例:部分填充数组的类 300

小贴士:get方法不需要返回实例变量 303

“for-each”循环 303

参数个数可变的方法 306

示例:一个字符串处理示例 308

数组实例变量的隐私泄露 309

示例:对数组排序 312

枚举类型 315

小贴士:在switch语句中使用枚举类型 319

6.4 多维数组 321

多维数组的基础知识 321

使用length实例变量 323

参差数组 323

多维数组参数和返回值 324

示例:一个成绩册类 325

本章小结 330

自测题答案 330

编程项目 336

第7章 继承 343

7.1 继承的基础知识 344

派生类 344

重写方法的定义 352

修改重写方法的返回类型 353

修改重写方法的访问权限 354

陷阱:重写vs.重载 354

super构造函数 355

this构造函数 356

小贴士:派生类的对象有多个类型 357

陷阱:术语子类和超类 359

示例:增强的StringTokeni zer类 359

7.2 封装和继承 362

陷阱:基类中私有变量的使用 362

陷阱:私有方法不能被有效地继承 364

受保护访问和包访问 364

陷阱:忘记默认包 366

陷阱:受保护访问的限制 366

7.3 使用继承编程 368

小贴士:静态变量是继承的 368

小贴士:“is a”vs.“has a” 369

访问重新定义的基类方法 369

陷阱:你不能使用多个super 370

Object类 371

定义equals的正确方式 371

小贴士:getClass vs.instanceof 373

本章小结 377

自测题答案 377

编程项目 380

第8章 多态与抽象类 385

8.1 多态 386

后期绑定 386

final修饰符 388

示例:销售记录 389

在toString中使用后期绑定 394

陷阱:静态方法不使用后期绑定 395

向下转型和向上转型 396

陷阱:向下转型 398

小贴士:检查向下转型是否是合法的 399

clone方法浅析 400

陷阱:有时clone方法的返回类型是对象 401

陷阱:拷贝构造函数的限制 402

8.2 抽象类 405

抽象类综述 405

陷阱:你无法创建抽象类的实例 408

小贴士:抽象类是一种类型 409

本章小结 410

自测题答案 410

编程项目 412

第9章 异常处理 415

9.1 异常处理基础知识 416

try-catch机制 417

用Scanner类进行异常处理 418

小贴士:异常控制的循环 419

抛出异常 421

示例:异常处理的“玩具”示例 422

异常类 426

标准包中的异常类 427

定义异常类 428

小贴士:保留getMessage 432

小贴士:异常类可以携带任何类型的消息 434

多个catch块 438

陷阱:先捕获更具体的异常 439

9.2 在方法中抛出异常 441

在方法中抛出异常概述 441

在throws从句中声明异常 443

捕获或声明规则的例外情况 445

派生类中的throws从句 447

何时使用异常 447

示例:检索高分 448

事件驱动编程 451

9.3 更多异常处理编程技术 452

陷阱:嵌套的try-catch块 452

finally块 452

重新抛出异常 454

AssertionError类 454

ArrayIndexOutOfBoundsException 454

本章小结 455

自测题答案 455

编程项目 459

第10章 文件I/O 463

10.1 文件I/O简介 464

流 464

文本文件和二进制文件 465

10.2 文本文件 466

写入文本文件 466

陷阱:try块是一个块 470

陷阱:覆盖输出文件 471

追加到文本文件末尾 471

小贴士:toString可以帮助文本文件的输出 472

从文本文件中读取 473

使用Scanner读取文本文件 473

用Scanner测试文本文件的结束 475

使用BufferedReader读取文本文件 480

小贴士:用BufferedReader读取数字 483

用BufferedReader测试文本文件的结束 484

路径名 485

嵌套的构造函数调用 486

System.in、System.out和System.err 487

10.3 File类 489

用File类编程 489

10.4 二进制文件 492

将简单数据写入二进制文件中 493

UTF和writeUTF 496

从二进制文件中读取简单数据 497

检查二进制文件的结束 501

陷阱:用错误的方式检查文件结束 502

对象的二进制I/O 503

Serializable接口 505

陷阱:将类类型混合在同一个文件中 506

二进制文件中的数组对象 506

10.5 随机存取二进制文件 508

读写同一个文件 508

陷阱:RandomAccessFile不需要从空文件开始 512

本章小结 512

自测题答案 513

编程项目 516

第11章 递归 521

11.1 递归void方法 522

示例:垂直显示的数字 523

跟踪递归调用 525

递归详解 527

陷阱:无限递归 528

递归的栈 530

陷阱:栈溢出 531

递归与迭代 531

11.2 返回值的递归方法 532

返回值的递归方法的一般形式 532

示例:另一个幂方法 532

11.3 递归思维 536

递归设计技巧 536

二分查找 537

二分查找的效率 542

示例:查找一个文件 543

本章小结 546

自测题答案 546

编程项目 550

第12章 UML和模式 555

12.1 UML 556

UML的历史 557

UML类图 557

类交互 557

继承图 558

UML的更多知识 559

1212模式 560

适配器模式 560

模型-视图-控制器模式 560

示例:排序模式 561

排序模式的限制 566

排序模式的效率 567

小贴士:语用学和模式 567

模式形式 567

本章小结 568

自测题答案 568

编程项目 570

第13章 接口和内部类 573

13.1 接口 574

接口概述 574

抽象类实现接口 576

派生接口 577

陷阱:接口语义不会被强制执行 578

Comparable接口 579

示例:使用Comparable接口 580

接口中的预定义常量 584

陷阱:不一致的接口 584

Serializable接口 587

Cloneable接口 587

13.2 内部类的简单使用 590

帮助类 590

小贴士:内部类和外部类可以访问彼此的私有成员 591

示例:一个银行账户类 591

内部类的.class文件 595

陷阱:内部类的其他用途 595

13.3 内部类的更多内容 595

静态内部类 595

公有内部类 596

小贴士:调用外部类的方法 598

嵌套内部类 599

内部类和继承 599

匿名类 600

小贴士:为什么要使用内部类 602

本章小结 602

自测题答案 603

编程项目 607

第14章 泛型和ArrayList类 611

14.1 ArrayList类 612

使用ArrayList类 613

小贴士:在ArrayList中添加元素的总结 617

ArrayList类中的方法 618

“for-each”循环 620

示例:高尔夫球成绩 623

小贴士:使用trimToSize节约内存 625

陷阱:clone方法会进行浅拷贝 625

Vector类 626

参数化的类和泛型 627

陷阱:非参数化的ArrayList和Vector类 627

14.2 泛型 627

泛型基础知识 627

陷阱:用-Xlint选项编译 629

示例:有序对的泛型类 629

陷阱:泛型构造函数名没有类型参数 632

陷阱:你不能用原始类型替换类型参数 633

陷阱:并不是在使用类型名称的任何地方都可以使用类型参数 633

陷阱:泛型类的实例化不可以是数组基本类型 633

小贴士:类定义中可以有多个类型参数 634

陷阱:泛型类不能是异常类 635

类型参数的限制 636

小贴士:泛型接口 638

泛型方法 638

泛型类的继承 639

本章小结 641

自测题答案 641

编程项目 643

第15章 链式数据结构 647

15.1 Java链表 649

示例:简单的链表类 649

使用链表 652

陷阱:隐私泄露 657

节点内部类 657

示例:泛型链表 660

陷阱:使用Node,而不是Node<T> 664

链表的equals方法 664

15.2 拷贝构造函数和clone方法 665

简单的拷贝构造函数和clone方法 666

异常 666

陷阱:clone方法在Object中是受保护的 668

小贴士:使用类型参数限制可以得到更好的clone方法 669

示例:带有深拷贝clone方法的链表 672

小贴士:克隆是一种“全有或者全无”事件 674

15.3 迭代器 675

定义一个迭代器类 675

添加和删除节点 680

15.4 链表的变形 683

双向链表 683

栈数据结构 691

队列数据结构 693

运行时间和大O符号 695

链表的效率 699

15.5 链式哈希表 700

字符串的哈希函数 701

哈希表的效率 704

15.6 set 704

set的基本操作 705

使用链表的set的效率 709

15.7 树 710

树的性质 710

示例:一个二叉查找树类 712

二叉查找树的效率 716

本章小结 716

自测题答案 717

编程项目 722

第16章 集合、映射和迭代器 725

16.1 集合 726

通配符 727

集合框架 728

陷阱:可选操作 733

小贴士:处理所有这些异常 733

具体的集合类 734

ArrayList<T>和Vector<T>之间的区别 741

集合框架的非参数化版本 742

陷阱:省略<T> 742

16.2 Map映射 742

具体的Map类 744

16.3 迭代器 748

迭代器的概念 748

Iterator<T>接口 748

小贴士:for-each循环作为迭代器 750

列表迭代器 751

陷阱:next可以返回一个引用 753

小贴士:定义自己的迭代器类 754

本章小结 755

自测题答案 755

编程项目 756

第17章 Swing Ⅰ 761

17.1 事件驱动编程 762

事件和监听器 763

17.2 按钮、事件和其他Swing基础知识 764

示例:一个简单的窗口 764

陷阱:忘记编写关闭窗口按钮的代码 768

按钮 769

动作监听器和动作事件 770

陷阱:修改actionPerformed的方法头 771

小贴士:结束一个Swing程序 772

示例:第一个Swing GUI的更好版本 772

标签 775

颜色 776

示例:一个带有标签和颜色的GUI 777

17.3 容器和布局管理器 779

边界布局管理器 779

流布局管理器 782

网格布局管理器 783

面板 786

示例:用面板创建3种颜色 787

Container类 790

小贴士:分别编写GUI的外观和动作 792

模型-视图-控制器模式 793

17.4 菜单和按钮 793

示例:一个带有菜单的GUI 794

菜单、菜单项和菜单栏 794

嵌套菜单 798

AbstractButton类 798

setActionCommand方法 801

监听器作为内部类 802

17.5 文本框和文本域 804

文本框和文本域概述 804

小贴士:给文本域添加标签 809

小贴士:输入和输出数字 810

一个Swing计算器 810

本章小结 815

自测题答案 815

编程项目 821

第18章 Swing Ⅱ 823

18.1 窗口监听器 824

示例:一个窗口监听器内部类 825

dispose方法 828

陷阱:忘记调用setDefaultCloseOperation 829

WindowAdapter类 829

18.2 图标和滚动条 831

图标 831

滚动条 836

示例:可以改变可见性的组件 840

18.3 Graphics类 842

图形对象的坐标系统 842

paint方法和Graphics类 843

绘制椭圆 848

绘制弧线 848

圆角矩形 851

面板的paintComponent 851

动作绘制和repaint 852

更新GUI的更多细节 856

18.4 颜色 857

指定绘图颜色 857

定义颜色 858

陷阱:使用double定义颜色 859

JColorChooser对话框窗口 860

18.5 字体drawString方法 862

drawString方法 863

字体 864

本章小结 867

自测题答案 867

编程项目 871

第19章 Java永不落幕 875

19.1 多线程 876

示例:一个无响应的GUI 877

Thread.sleep 877

getGraphics方法 880

使用线程修复一个无响应的程序 881

示例:一个多线程程序 881

Thread类 881

Runnable接口 884

竞争条件和线程同步 886

19.2 流套接字网络 890

套接字 890

套接字和线程 893

URL类 894

19.3 JavaBeans 895

组件模式 895

JavaBeans模型 895

19.4 Java和数据库连接 896

关系数据库 896

Java DB和JDBC 897

SQL 898

19.5 用JSP进行Web编程 906

applet、servlet和JSP 906

Oracle GlassFish企业级服务器 908

HTML表单——通用网关接口 909

JSP声明、表达式、scriptlet和指令 911

19.6 浅谈Java 8中的函数式编程 918

19.7 浅谈JavaFX 924

本章小结 936

自测题答案 937

编程项目 938

附录A 关键字 941

附录B 优先级和结合性规则 943

附录C ASCII字符集 945

附录D printf的格式规范 947

附录E 类和接口总结 949

相关图书
作者其它书籍
返回顶部