作者 |
张永健 (美) Paul Deitel(保罗 ? 戴特尔) Harvey Deitel(哈维 ? 戴特尔) |
丛书名 |
国外计算机科学教材系列 |
出版社 |
电子工业出版社 |
ISBN |
9787121406812 |
简要 |
简介 |
内容简介 本书是一本Java 编程方面的优秀教材,秉承Deitel系列丛书的一贯特点:内容丰富、覆盖面广,提供详细代码与实例研究,总结出大量的面向对象编程技巧和经验。本书详细说明了在Java 中面向对象编程的基本理论及实用知识,以初学者为起点,由点到面、由浅入深、循序渐进地介绍了对象、继承、多态、接口、异常处理、JavaFX GUI、数据结构和集合、lambda与流、递归、搜索与排序、并发性、JDBC、JavaFX与多媒体、JShell 等,并且详细介绍了网络应用的开发与实践。第十一版在前一版的基础上增加了更多的实际案例,更新了很多内容,有助于读者学习和借鉴。本书包括更广泛的教学特性,其中列举了数百个可实际使用的程序,并给出了运行结果,可以使学生在学习时更为直观。 |
目录 |
第1章 计算机、Internet与Java简介 1 1.1 简介 2 1.2 硬件和软件 3 1.3 数据层次 4 1.4 机器语言、汇编语言和高级语言 6 1.5 对象技术介绍 7 1.6 操作系统 9 1.7 编程语言 11 1.8 Java 12 1.9 典型的Java开发环境 12 1.10 测试驱动的Java应用 15 1.11 Internet和WWW 17 1.12 软件技术 19 1.13 Java问题解答 20 自测题 20 自测题答案 21 练习题 21 挑战题 22 第2章 Java应用介绍、输入/输出、运算符 23 2.1 简介 23 2.2 第一个Java程序:输出一行文本 24 2.3 修改第一个Java程序 28 2.4 使用printf显示文本 29 2.5 另一个Java程序:整数相加 30 2.6 内存概念 33 2.7 算术运算 34 2.8 判断:相等性和关系运算符 36 2.9 小结 39 总结 39 自测题 41 自测题答案 42 练习题 44 挑战题 47 第3章 类、对象、方法与String简介 48 3.1 简介 48 3.2 实例变量、set方法和get方法 49 3.3 Account类:使用构造方法初始化对象 56 3.4 包含浮点数余额的Account类 58 3.5 基本类型与引用类型的比较 61 3.6 (选修)GUI与图形实例:一个简单的GUI 62 3.7 小结 67 总结 67 自测题 70 自测题答案 71 练习题 71 挑战题 72 第4章 控制语句(1)及赋值、++与- -运算符 73 4.1 简介 73 4.2 算法 74 4.3 伪代码 74 4.4 控制结构 74 4.5 if单选择语句 76 4.6 if...else双选择语句 77 4.7 Student类:嵌套if...else语句 79 4.8 while循环语句 81 4.9 形成算法:计数器控制循环 82 4.10 形成算法:标记控制循环 85 4.11 形成算法:嵌套控制语句 90 4.12 复合赋值运算符 93 4.13 增量运算符和减量运算符 94 4.14 基本类型 96 4.15 (选修)GUI与图形实例:事件处理、画线 96 4.16 小结 104 总结 104 自测题 107 自测题答案 108 练习题 109 挑战题 113 第5章 控制语句(2)及逻辑运算符 115 5.1 简介 115 5.2 计数器控制循环的实质 116 5.3 for循环语句 116 5.4 使用for语句的示例 119 5.5 do...while循环语句 122 5.6 switch多选择语句 123 5.7 AutoPolicy类实例:switch语句中的字符串 127 5.8 break和continue语句 130 5.9 逻辑运算符 131 5.10 结构化编程小结 135 5.11 (选修)GUI与图形实例:绘制矩形和椭圆 138 5.12 小结 141 总结 141 自测题 143 自测题答案 144 练习题 145 挑战题 148 第6章 方法:深入探究 149 6.1 简介 149 6.2 Java中的程序单元 150 6.3 静态方法、静态字段和Math类 151 6.4 声明多参数方法 152 6.5 关于声明与使用方法的说明 155 6.6 方法调用栈与活动记录 156 6.7 实参提升与强制转换 157 6.8 Java API包 158 6.9 案例分析:安全的随机数生成方法 159 6.10 案例分析:机会游戏与enum类型 162 6.11 声明的作用域 165 6.12 方法重载 167 6.13 (选修)GUI与图形实例:颜色和填充图形 169 6.14 小结 171 总结 171 自测题 174 自测题答案 175 练习题 176 挑战题 180 第7章 数组与ArrayList 181 7.1 简介 182 7.2 数组 182 7.3 声明和创建数组 183 7.4 数组使用举例 184 7.5 异常处理:处理不正确的反馈值 190 7.6 案例分析:模拟洗牌和发牌 191 7.7 增强型for语句 194 7.8 将数组传入方法 195 7.9 按值传递与按引用传递 196 7.10 案例分析:GradeBook类用数组保存成绩 197 7.11 多维数组 201 7.12 案例分析:使用二维数组的GradeBook类 203 7.13 变长实参表 207 7.14 使用命令行实参 208 7.15 Arrays类 210 7.16 集合和ArrayList类简介 212 7.17 (选修)GUI与图形实例:画圆弧 214 7.18 小结 216 总结 216 自测题 219 自测题答案 219 练习题 220 拓展内容:建立自己的计算机 227 挑战题 231 第8章 类与对象:深入探究 233 8.1 简介 233 8.2 Time类案例分析 234 8.3 对成员的访问控制 237 8.4 用this引用访问当前对象的成员 237 8.5 Time类案例分析:重载构造方法 239 8.6 默认构造方法与无实参构造方法 243 8.7 set方法和get方法 243 8.8 组合 244 8.9 enum类型 246 8.10 垃圾回收 248 8.11 静态类成员 249 8.12 静态导入 251 8.13 final实例变量 252 8.14 包访问 253 8.15 将BigDecimal用于精确的货币计算 254 8.16 (选修)GUI与图形实例:使用包含图形的对象 255 8.17 小结 258 总结 258 自测题 261 自测题答案 261 练习题 261 挑战题 264 第9章 面向对象编程:继承 265 9.1 简介 265 9.2 超类与子类 266 9.3 protected成员 267 9.4 超类与子类的关系 268 9.5 子类的构造方法 282 9.6 Object类 283 9.7 比较组合和继承的差异 283 9.8 小结 285 总结 285 自测题 286 自测题答案 286 练习题 286 第10章 面向对象编程:多态和接口 289 10.1 简介 289 10.2 多态示例 290 10.3 演示多态行为 291 10.4 抽象类和抽象方法 293 10.5 案例分析:使用多态的工资系统 295 10.6 超类和子类变量之间允许的赋值 305 10.7 final方法和final类 305 10.8 分析从构造方法调用方法时的问题 306 10.9 创建和使用接口 306 10.10 Java SE 8的接口强化 312 10.11 Java SE 9的私有接口方法 313 10.12 私有构造方法 314 10.13 使用接口继承而非实现继承 314 10.14 (选修)GUI与图形实例:利用多态性画图 316 10.15 小结 317 总结 318 自测题 320 自测题答案 321 练习题 321 挑战题 322 第11章 异常处理:深入探究 323 11.1 简介 323 11.2 示例:除数为0时没有处理异常 324 11.3 示例:处理ArithmeticException异常和InputMismatchException 异常 326 11.4 何时使用异常处理 330 11.5 Java异常层次 330 11.6 finally语句块 332 11.7 栈解退和从异常获得信息 336 11.8 链式异常 338 11.9 声明新的异常类型 339 11.10 前置条件和后置条件 340 11.11 断言 340 11.12 try-with-resources:自动释放资源 341 11.13 小结 342 总结 343 自测题 345 自测题答案 345 练习题 346 第12章 JavaFX GUI(1) 347 12.1 简介 347 12.2 JavaFX Scene Builder 348 12.3 JavaFX程序窗口的结构 349 12.4 Welcome程序――显示文本和图像 350 12.5 Tip Calculator程序――事件处理 353 12.6 后续有关JavaFX章节中的主题 365 12.7 小结 365 总结 366 自测题 369 自测题答案 370 练习题 370 挑战题 370 第13章 JavaFX GUI(2) 372 13.1 简介 372 13.2 在场景图中布局节点 373 13.3 Painter程序:RadioButton、鼠标事件和形体 374 13.4 Color Chooser程序:属性绑定和属性监听器 381 13.5 Cover Viewer程序:数据驱动的GUI及JavaFX集合 386 13.6 Cover Viewer程序:定制ListView单元格 389 13.7 其他JavaFX功能 392 13.8 JavaFX 9:Java SE 9 JavaFX的更新 394 13.9 小结 395 总结 395 自测题 400 自测题答案 401 练习题 401 第14章 字符串、字符与正则表达式 402 14.1 简介 402 14.2 字符和字符串基础 403 14.3 String类 403 14.4 StringBuilder类 413 14.5 Character类 418 14.6 标记化String 421 14.7 正则表达式及Pattern类和Matcher类 422 14.8 小结 427 总结 428 自测题 430 自测题答案 431 练习题 431 拓展内容:字符串操作练习题 432 拓展内容:处理字符串的挑战项目 434 挑战题 435 第15章 文件、输入/输出流、NIO与XML序列化 436 15.1 简介 436 15.2 文件和流 437 15.3 使用NIO类和接口来获得文件和信息 438 15.4 顺序文本文件 440 15.5 XML序列化 447 15.6 FileChooser和DirectoryChooser对话框 452 15.7 (选修)其他的java.io类 456 15.8 小结 458 总结 458 自测题 461 自测题答案 462 练习题 462 挑战题 464 第16章 泛型集合 465 16.1 简介 465 16.2 集合概述 466 16.3 类型包装器类 467 16.4 自动装箱和自动拆箱 467 16.5 Collection接口和Collections类 467 16.6 List 468 16.7 Collections方法 473 16.8 PriorityQueue类和Queue接口 481 16.9 Set 482 16.10 Map 484 16.11 同步集合 487 16.12 不可修改集合 487 16.13 抽象实现 488 16.14 Java SE 9:用于不可变集合的便利工厂方法 488 16.15 小结 490 总结 491 自测题 493 自测题答案 493 练习题 494 第17章 lambda与流 496 17.1 简介 497 17.2 流和聚合 498 17.3 映射和lambda 500 17.4 过滤 503 17.5 元素如何在流管道中移动 504 17.6 方法引用 505 17.7 IntStream操作 507 17.8 函数式接口 510 17.9 lambda:深入探究 511 17.10 Stream<Integer>操作 512 17.11 Stream<String>操作 515 17.12 Stream<Employee>操作 516 17.13 根据文件创建Stream<String> 524 17.14 随机值流 526 17.15 无限流 528 17.16 lambda事件处理器 529 17.17 关于Java SE 8接口的更多说明 529 17.18 小结 530 总结 530 自测题 536 自测题答案 537 练习题 538 第18章 递归 541 18.1 简介 541 18.2 递归概念 542 18.3 使用递归示例:阶乘 542 18.4 利用BigInteger重新实现FactorialCalculator类 544 18.5 使用递归示例:Fibonacci序列 545 18.6 递归与方法调用栈 547 18.7 递归与迭代的比较 548 18.8 汉诺塔 550 18.9 分形 551 18.10 递归回溯 559 18.11 小结 559 总结 560 自测题 561 自测题答案 562 练习题 562 第19章 搜索、排序与大O记法 566 19.1 简介 566 19.2 线性搜索 567 19.3 大O记法 569 19.4 二分搜索 570 19.5 排序算法 573 19.6 选择排序 574 19.7 插入排序 576 19.8 合并排序 578 19.9 本章的搜索和排序算法的效率小结 582 19.10 大规模并行处理与并行算法 583 19.11 小结 583 总结 583 自测题 585 自测题答案 585 练习题 585 挑战题 587 第20章 泛型类和泛型方法:深入探究 588 20.1 简介 588 20.2 泛型方法的由来 588 20.3 泛型方法:实现及编译时翻译 590 20.4 其他编译时翻译问题:将类型参数用作返回类型的方法 592 20.5 重载泛型方法 594 20.6 泛型类 595 20.7 接收类型参数的方法中的通配符 599 20.8 小结 602 总结 602 自测题 604 自测题答案 604 练习题 604 第21章 定制泛型数据结构 606 21.1 简介 606 21.2 自引用类 607 21.3 动态内存分配 607 21.4 链表 608 21.5 栈 617 21.6 队列 620 21.7 树 621 21.8 小结 626 总结 626 自测题 628 自测题答案 629 练习题 629 拓展内容:建立自己的编译器 634 第22章 JavaFX图形与多媒体 644 22.1 简介 644 22.2 利用CSS控制字体 645 22.3 显示二维形体 650 22.4 Polyline、Polygon和Path 654 22.5 变换 658 22.6 利用Media、MediaPlayer和MediaViewer播放视频 659 22.7 Transition动画 664 22.8 Timeline动画 668 22.9 利用AnimationTimer实现逐帧动画 670 22.10 在Canvas上绘图 671 22.11 三维形体 675 22.12 小结 678 总结 678 自测题 683 自测题答案 684 练习题 684 第23章 并发性 691 23.1 简介 691 23.2 线程状态与生命周期 693 23.3 用Executor框架创建并执行线程 695 23.4 线程同步 698 23.5 没有同步的生产者/消费者关系 704 23.6 生产者/消费者关系:ArrayBlockingQueue 710 23.7 (进阶)具有synchronized、wait、notify及notifyAll的生产者/消费者关系 712 23.8 (进阶)生产者/消费者关系:有界缓冲区 716 23.9 (进阶)生产者/消费者关系:Lock接口和Condition接口 722 23.10 并发集合 727 23.11 JavaFX中的多线程 728 23.12 利用Java SE 8的日期/时间API为sort/parallelSort计时 737 23.13 Java SE 8:串行流与并行流 739 23.14 (进阶)Callable接口和Future接口 740 23.15 (进阶)Fork/Join框架 744 23.16 小结 744 总结 745 自测题 750 自测题答案 751 练习题 752 第24章 利用JDBC访问数据库 754 24.1 简介 755 24.2 关系数据库 755 24.3 books数据库 756 24.4 SQL 759 24.5 设置Java DB数据库 764 24.6 连接并查询数据库 766 24.7 查询books数据库 769 24.8 RowSet接口 778 24.9 PreparedStatement 780 24.10 存储过程 788 24.11 事务处理 789 24.12 小结 789 总结 790 自测题 794 自测题答案 794 练习题 794 第25章 JShell简介:Java SE 9中用于交互式Java的REPL 797 25.1 简介 798 25.2 安装JDK 9 799 25.3 JShell简介 799 25.4 JShell中的命令行输入 807 25.5 声明并使用类 808 25.6 JShell的自动补全功能 811 25.7 探索类成员并查看文档 812 25.8 声明方法 817 25.9 异常处理 818 25.10 导入类并将包添加到CLASSPATH 819 25.11 使用外部编辑器 820 25.12 JShell命令汇总 822 25.13 代码段编辑的快捷键 826 25.14 JShell如何重新解释Java以供交互使用 827 25.15 IDE JShell支持 827 25.16 小结 827 自测题 828 自测题答案 830 在线章节 840 附录A 运算符优先级表 841 附录B ASCII字符集 843 附录C 关键字和保留字 844 附录D 基本类型 845 附录E 使用调试器 846 在线附录 856 索引 857 |