本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
图书基本信息 | |
图书名称 | Absolute Java中文版 |
作者 | (美)Walter Savitch(沃尔特·萨维奇), Kenr |
定价 | 268元 |
出版社 | 电子工业出版社 |
ISBN | 9787121328664 |
出版日期 | 2018-01-01 |
字数 | 1500000 |
页码 | 1028 |
版次 | 6 |
装帧 | 平装-胶订 |
开本 | 16开 |
商品重量 | 0.4Kg |
内容简介 | |
本书侧重于面向对象设计,通过浅显易懂的语言和代码,很好地平衡了完整实例和解释性讨论,并围绕着Java 语言的特性全面透彻地介绍诸多编程技术。书中全面介绍了Java 语言已经实现的封装、继承和多态性技术,并在介绍Swing GUI 的时候提及了事件驱动的编程,在介绍UML 和模式的同时进一步介绍了OOP。本书每节后都设计了相应的练习题,每章后都有针对本章内容的编程项目。本书不仅适合初学者使用,还可以作为使用Java 的后续计算机科学课程的参考书。 |
作者简介 | |
Walter John Savitch(生于1943年2月21日)由于发现了复杂性类NL(非确定型对数空间)、以及定义NSPACE和DSPACE复杂性类之间关系的Savitch定理而被人熟知。他为建立复杂性类所做的工作有助于我们创建执行非确定性和概率推理的背景。他还在自然语言处理和数学语言学领域做了大量的工作。他一直专注于计算机计算,因为它在10年前就已经被应用到遗传学和生物学。除了在理论计算机科学上所做的工作,Savitch还编著了很多关于学习使用C/C 、Java、Ada、Pascal等语言进行编程的教科书。在Stephen Cook的指导下,Savitch在1969年获得了加州大学伯克利分校的数学博士学位。 从那时候开始他就一直是加州大学圣地亚哥分校(UCSD)的教授,现在他还是计算机科学专业的名誉教授。 译有《Java(第6版)》、《信息架构:Web设计(第4版)》《像富人一样思考》《故事场景摩天楼》《互联网领导思维》《断点:互联网进化启示录》《游戏编程指南》《Unity 3.x游戏开发实例》《iPhone应用用户体验设计实战与案例》《社交网站界面设计》等书。 |
目录 | |
目录 章 入门知识 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 陷阱:行终止符'\'的处理 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 et语句 121 3.4 调试 122 循环bug 122 跟踪变量 122 常规调试技术 123 示例:调试一个输入验证循环 124 预防性编码 127 断言检查 127 3.5 生成数 129 Random对象 130 Math.random( )方法 131 本章小结 132 自测题答案 132 编程项目 136 第4章 类的定义 I 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章 类的定义 II 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 示例:增强的StringTokenizer类 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 0章 文件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 用 |
编辑推荐 | |
文摘 | |
序言 | |