第7版 Java程式设计与问题求解


第7版 Java程式设计与问题求解

文章插图
Java程式设计与问题求解(第7版)【第7版 Java程式设计与问题求解】《Java程式设计与问题求解(第7版)》是2015年出版的图书 , 作者是Walter Savitch 。
基本介绍书名:Java程式设计与问题求解
作者:Walter Savitch
ISBN:9787302389354
出版社:清华大学出版社
出版时间:2015-04-01
图书信息Java程式设计与问题求解(第7版)金名 等译ISBN:9787302389354定价:99元印次:1-1装帧:平装内容简介本书用于程式设计与计算机科学专业的第一门课程 。本书不仅介绍Java语法知识 , 而且通过大量案例研究、编程示例 , 着重讲授问题求解和编程技术 , 如循环设计技术、调试技巧、风格技术、抽象数据类型以及面向对象编程技术 , 包括UML、事件驱动编程以及使用类型参数的泛型编程等 。本书不仅在每章中间安排了大量自测题 , 而且在每章末尾还给出了练习题、编程实践和编程项目 , 帮助读者掌握和加深所学知识 , 是高等学校计算机及相关专业以Java为语言讲授计算机科学课程的理想教材 。本书共分15章 , 前12章採用纸质印刷方式 , 也就是读者现在看到的内容 , 后3章放在本书的配套网站上 , 有多余精力的读者可以直接到该网站阅读和学习这些内容 。前言本书是由美国加州大学圣地亚哥分校计算机科学系名誉教授、多部C++、Java教材畅销书作者Walter Savitch编写 。除本书外 , Walter Savitch还着有一系列程式语言教材 , 都广受欢迎 , 畅销不衰 , 被誉为读者最多的计算机程式语言图书作者 。本书第7版与第6版之间主要有如下一些差别* 每章末尾的编程题分成了编程实践和编程项目 。编程实践通常可以直接使用本章介绍的编程思想 , 用一个比较简短的程式解决 。编程实践适合作为实验练习 。编程项目需要更强的问题求解能力 , 解决方法也比编程实践更複杂 。编程项目适合作为课后作业 。* 增加了安全编程(如溢出、数组越界)、Java 2D API概述、网路编程、URL类等 内容 。* 新增21个新编程实践和13个新编程项目 。* 新增10个教学视频 , 使本书的总教学视频达到72个 。这些教学视频可以向学生讲解问题求解与编码的过程 , 帮助学生巩固关键编程概念 。本书由金名主译 , 陈宗斌、陈河南、贺军、傅强、陈红霞、张景友、易小丽、陈婷、管学岗、王新彦、金惠敏、张海峰、徐晔、戴锋、张德福、张士华、张锁玲、杜明宗、高玉琢、王涛、申川、孙玲、李振国、高德杰、宫飞、侯经国、刘淑妮、张春林、李大成、程明、张路红、张淑芝、孙先国、刘冀得、梁永翔、张广东、郁琪琳、邵长凯、蒲书箴、潘曙光、刘瑞东、李军、蔡建章、李匀、张建安、邓铁洪、徐君、李强、蒋恩俊、杨文保、李强、苏辛、周成兴、魏敬安、朱建波、徐志平、赵杰辉、傅袆、郭碧莲、郭洵、洪晓煜、黄宣达、江松波、柯渝、赖曲芳、廖阳、刘文红、李伟、郭涛、高磊、王振营、冯哲、韩毅、马以辉、李腾、邓卫、邓凡平、周云、董武、郑晓蕊、陈占军、倪泳智、黄虹、吕巧珍、裘蕾、金颖、王嘉佳、吴建伟、宋雁等人也参与了本书的翻译工作 , 在此一併表示 感谢!由于水平有限 , 如有不妥之处 , 恳请读者指正 。目录第1章 计算机与Java语言概述 11.1 计算机基础 11.1.1 硬体和记忆体 11.1.2 程式 31.1.3 程式语言、编译器、解释器 41.1.4 Java位元组代码 61.1.5 类载入器 71.2 Java基础 81.2.1 Java语言的历史 81.2.2 应用程式和小套用程式 91.2.3 第一个Java应用程式 91.2.4 编写、编译和运行Java程式 131.3 编程基础 151.3.1 面向对象编程 151.3.2 算法 171.3.3 测试与调试 191.3.4 软体重用 201.4 图形补充材料 211.4.1 一个示例图形小套用程式 211.4.2 图形的大小和位置 231.4.3 绘製椭圆和圆 241.4.4 绘製弧形 251.4.5 运行小应用程式 271.5 本章小结 27练习题 28编程项目 29自测题答案 30第2章 基本计算 332.1 变数和表达式 332.1.1 变数 332.1.2 数据类型 352.1.3 Java标识符 372.1.4 赋值语句 382.1.5 简单输入 412.1.6 简单萤幕输出 422.1.7 常量 432.1.8 具名常量 442.1.9 赋值兼容性 452.1.10 类型强制转换 462.1.11 数学运算符 492.1.12 小括弧与优先权??规则 512.1.13 特殊赋值运算符 532.1.14 增量和减量运算符 582.1.15 增量和减量运算符的更多介绍 592.2 String类 602.2.1 字元串常量和变数 602.2.2 字元串的拼接 612.2.3 String类的方法 622.2.4 字元串处理 652.2.5 转义字元 662.2.6 Unicode字元串 672.3 键盘与萤幕的输入输出 682.3.1 萤幕输出 692.3.2 键盘输入 712.3.3 其他输入分隔设定(选读) 762.3.4 使用printf进行格式化输出(选读) 772.4 文档与风格 792.4.1 有意义的变数名称 792.4.2 注释 792.4.3 缩进 822.4.4 使用具名常量 822.5 图形补充材料 842.5.1 运用到图形小套用程序上的样式规则 852.5.2 使用JFrame类创建Java GUI应用程式 852.5.3 JOptionPane类概述 892.5.4 以其他数值类型方式读取输入 962.6 本章小结 98练习题 99 编程实践 101编程项目 102自测题答案 105第3章 程式控制流:分支 1093.1 if-else语句 1093.1.1 基本if-else语句 1093.1.2 布尔表达式 1153.1.3 比较字元串 1193.1.4 嵌套if-else语句 1233.1.5 多分支if-else语句 1253.1.6 条件运算符(选读) 1313.1.7 exit方法 1323.2 boolean类型 1333.2.1 布尔变数 1333.2.2 优先权规则 1353.2.3 布尔值的输入和输出 1373.3 switch语句 1383.3.1 枚举 1443.4 图形补充材料 1453.4.1 指定绘图颜色 1463.4.2 表达“是”或“否”提问的对话框 1493.5 本章小结 151练习题 151编程实践 153编程项目 154自测题答案 155第4章 程式控制流:循环 1584.1 Java循环语句 1584.1.1 while语句 1584.1.2 do-while语句 1624.1.3 for语句 1734.1.4 在for语句内部声明变数 1784.1.5 在for语句中使用逗号(选读) 1794.1.6 for-each语句 1804.2 使用循环编程 1814.2.1 循环体 1814.2.2 初始化语句 1824.2.3 控制循环叠代次数 1834.2.4 循环中的break语句和continue语句(选读) 1904.2.5 循环错误 1924.2.6 跟蹤变数 1944.2.7 断言检查 1954.3 图形补充材料 1974.3.1 drawString方法 2024.4 本章小结 203练习题 203编程实践 205编程项目 207自测题答案 210第5章 定义类与方法 2155.1 类与方法定义 2155.1.1 类档案与分别编译 2175.1.2 实例变数 2185.1.3 方法 2205.1.4 定义void方法 2235.1.5 定义返回一个值的方法 2245.1.6 关键字this 2315.1.7 局部变数 2335.1.8 语句块 2355.1.9 基本类型参数 2355.2 信息隐藏与封装 2415.2.1 信息隐藏 2415.2.2 前置条件注释与后置条件注释 2415.2.3 public与private修 饰符 2425.2.4 访问器方法和修改器方法 2485.2.5 调用方法的方法 2555.2.6 封装 2605.2.7 使用javadoc完成自动文档 2635.2.8 UML类图 2635.3 对象和引用 2645.3.1 类类型变数 2645.3.2 为类定义equals方法 2695.3.3 布尔值方法 2745.3.4 类类型的参数 2785.4 图形补充材料 2855.4.1 Graphics类 2855.4.2 Graphics2D类与Java 2D API 2895.4.3 init方法 2915.4.4 向小应用程式中添加标籤 2925.5 本章小结 295练习题 296编程实践 299编程项目 300自测题答案 304第6章 再论对象与方法 3106.1 构造器 3116.1.1 定义构造器 3116.1.2 在构造器中调用方法 3196.1.3 从一个构造器中调用另一个构造器(选读) 3226.2 静态变数与静态方法 3236.2.1 静态变数 3236.2.2 静态方法 3256.2.3 将main方法的任务划分为子任务 3306.2.4 把main方法添加到一个类中 3316.2.5 Math类 3346.2.6 包装类 3366.3 编写方法 3406.3.1 分解 3466.3.2 解决编译器的关注 3476.3.3 测试方法 3486.4 重载 3506.4.1 重载基础 3506.4.2 重载与自动类型转换 3536.4.3 重载与返回类型 3556.5 再论信息隐藏 3636.5.1 私有性泄露 3636.6 将枚举看作类 3676.7 包 3696.7.1 包与导入 3696.7.2 包名和目录 3716.7.3 名称冲突 3736.8 图形补充材料 3736.8.1 添加按钮 3746.8.2 事件驱动编程 3756.8.3 编程按钮 3766.8.4 添加图示 3816.8.5 改变可见性 3836.9 本章小结 386练习题 387编程项目 389自测题答案 392第7章 数组 3997.1 数组基础 4007.1.1 创建和访问数组 4007.1.2 数组细节 4037.1.3 实例变数length 4067.1.4 再论数组下标 4087.1.5 初始化数组 4117.2 在类和方法中使用数组 4127.2.1 下标变数作为方法 参量 4207.2.2 整个数组作为方法的参量 4227.2.3 方法main的参量 4237.2.4 数组赋值和相等 4247.2.5 返回数组的方法 4277.3 使用数组和类进行编程 4317.3.1 部分填充数组 4387.4 排序和搜寻数组 4397.4.1 选择排序 4397.4.2 其他排序算法 4447.4.3 搜寻数组 4447.5 多维数组 4457.5.1 多维数组基础 4467.5.2 多维数组参数和返回值 4497.5.3 多维数组的Java表示 4517.5.4 不规则数组(选读) 4527.6 图形补充材料 4597.6.1 文本域和文本栏位 4597.6.2 类JTextArea和JTextField 4627.6.3 绘製多边形 4637.7 本章小结 465练习题 466编程实践 470编程项目 472自测题答案 476第8章 继承、多态与接口 4838.1 继承基础 4838.1.1 派生类 4848.1.2 覆盖方法定义 4888.1.3 覆盖和重载 4898.1.4 final修饰符 4898.1.5 基类的私有实例变数和私有方法 4908.1.6 UML继承图 4918.2 使用继承编程 4938.2.1 派生类中的构造器 4938.2.2 再论this方法 4958.2.3 调用覆盖方法 4958.2.4 在Undergraduate中定义equals方法的另一种途径 5008.2.5 类型兼容性 5008.2.6 Object类 5048.2.7 更好的equals方法 5068.3 多态 5088.3.1 动态绑定与继承 5088.3.2 与toString动态绑定 5118.4 接口与抽象类 5128.4.1 类接口 5128.4.2 Java接口 5138.4.3 实现接口 5148.4.4 接口作为类型使用 5168.4.5 扩展接口 5198.4.6 抽象类 5358.5 图形补充材料 5378.5.1 JApplet类 5388.5.2 JFrame类 5388.5.3 视窗事件和视窗侦听器 5418.5.4 ActionLisener接口 5428.5.5 下一步做什幺 5428.6 本章小结 543练习题 544编程实践 545编程项目 546自测题答案 548第9章 异常处理 5529.1 基本异常的处理 5529.1.1 Java中的异常 5529.1.2 预定义异常类 561 9.2 自定义异常类 5639.3 异常类深入介绍 5729.3.1 声明异常(转移责任) 5729.3.2 异常的种类 5759.3.3 错误 5769.3.4 多个抛出和多个捕获 5779.3.5 finally语句块 5839.3.6 重新抛出异常(选读) 5839.4 图形补充材料 5959.4.1 GUI中的异常 5959.5 本章小结 599练习题 599编程实践 601编程项目 602自测题答案 606第10章 流、档案I/O与网路技术 61010.1 流与档案I/O概述 61010.1.1 流的概念 61110.1.2 为什幺使用档案进行I/O 61110.1.3 文本档案和二进制档案 61110.2 文本档案I/O 61310.2.1 创建文本档案 61310.2.2 往文本档案添加内容 61810.2.3 从文本档案读取数据 62010.3 操作任意档案的技巧 62210.3.1 File类 62210.3.2 使用路径名 62410.3.3 File类的方法 62510.3.4 定义打开流的方法 62710.4 基本二进制档案I/O 63110.4.1 创建二进制档案 63110.4.2 把基本类型的数值写入二进制档案 63310.4.3 把字元串写入二进制档案 63610.4.4 writeUTF的一些细节 63610.4.5 读取二进制档案 63710.4.6 EOFException类 64110.5 使用对象和数组进行二进制档案I/O 64810.5.1 使用类的对象进行二进制档案I/O 64810.5.2 串列化的一些细节 65210.5.3 二进制档案中的数组对象 65310.6 使用流进行网路通信 65510.7 图形补充材料 66010.8 本章小结 666练习题 666编程实践 669编程项目 670自测题答案 674第11章 递归 68011.1 递归基础 68011.1.1 递归的工作原理 68711.1.2 无限递归 69011.1.3 递归方法与叠代方法的对比 69311.1.4 返回值的递归方法 69511.2 使用递归编程 69811.3 本章小结 711练习题 711编程实践 713编程项目 714 自测题答案 718第12章 动态数据结构与泛型 72112.1 基于数组的数据结构 72212.1.1 ArrayList类 72212.1.2 创建ArrayList的实例 72312.1.3 使用ArrayList的方法 72412.1.4 参数化类和通用数据类型 73012.2 Java集合框架 73012.2.1 Collection接口 73012.2.2 HashSet类 73112.2.3 Map接口 73212.2.4 HashMap类 73312.3 链式数据结构 73512.3.1 LinkedList类 73512.3.2 鍊表 73612.3.3 实现鍊表操作 73812.3.4 私有性泄露 74412.3.5 内部类 74512.3.6 结点内部类 74612.3.7 叠代器 74612.3.8 Java Iterator接口 75612.3.9 鍊表的异常处理 75712.3.10 鍊表的变体 75912.3.11 其他链式数据结构 76112.4 泛型 76212.4.1 泛型基础 76212.5 本章小结 769练习题 770编程实践 773编程项目 773自测题答案 777附录 782附录1 获得Java 782附录2 运行小应用程式 782附录3 protected与包修饰符 783附录4 DecimalFormat类 784附录5 javadoc 787附录6 C++和Java之间的差别 789附录7 Unicode字元编码 792