您好,欢迎来到聚文网。 登录 免费注册
Java语言程序设计(基础篇)(原书第12版)

Java语言程序设计(基础篇)(原书第12版)

  • 出版社: 机械工业
  • 作者: [美]梁勇(Y. Daniel Liang)|译者:戴开宇
  • 商品条码: 9787111669807
  • 版次: 1
  • 开本: 16开
  • 页数: 691
  • 出版年份: 2021
  • 印次: 1
定价:¥139 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
内容简介
<br><br>本书是Java语言的经典教材,中文版分为基础篇和进阶篇,主要介绍程序设计基础、面向对象程序设计、GUI程序设计、数据结构和算法、高级Java程序设计等内容。本书通过示例讲解问题求解技巧,提供大量的程序清单,每章配有丰富的复习题和编程练习题,帮助读者掌握编程技术,并学会应用所学技术解决实际开发中遇到的问题。基础篇主要介绍基本程序设计、语法结构、面向对象程序设计、继承和多态、异常处理和文本I/O、抽象类和接口等内容。本书可作为高等院校计算机相关专业程序设计课程的教材,也可作为Java语言及编程爱好者的参考资料。
作者简介
【有更新】<br />作者简介<br />梁勇(Y. Daniel Liang) 现为阿姆斯特朗亚特兰大州立大学计算机科学系教授。之前曾是普渡大学计算机科学系副教授,并两次获得普渡大学杰出研究奖。他所编写的Java教程在美国大学Java课程中采用率极高,同时他还兼任Prentice Hall Java系列丛书的编辑。他是“Java Champion”荣誉得主,并在世界各地为在校学生和程序员做Java程序设计方法及技术方面的讲座。<br /><br />【有更新】<br />译者简介<br />戴开宇 复旦大学软件学院教师,工程硕士导师,中国计算机学会会员。博士毕业于上海交通大学计算机应用专业,2011~2012年在美国佛罗里达大学作访问学者。承担多门本科专业课程、通识教育课程以及工程硕士课程,这些课程被评为校精品课程、上海市重点建设课程、IBM-教育部精品课程等。
目录
出版者的话<br/>中文版序<br/>译者序<br/>前言<br/>第1章 计算机、程序和Java概述 1<br/>1.1 引言 1<br/>1.2 什么是计算机 2<br/>1.2.1 中央处理器 2<br/>1.2.2 比特和字节 3<br/>1.2.3 内存 3<br/>1.2.4 存储设备 4<br/>1.2.5 输入和输出设备 5<br/>1.2.6 通信设备 5<br/>1.3 编程语言 6<br/>1.3.1 机器语言 6<br/>1.3.2 汇编语言 6<br/>1.3.3 高级语言 7<br/>1.4 操作系统 8<br/>1.4.1 控制和监视系统活动 8<br/>1.4.2 分配和调配系统资源 9<br/>1.4.3 调度操作 9<br/>1.5 Java的特性和应用 9<br/>1.6 Java语言规范、API、JDK、JRE和IDE 10<br/>1.7 一个简单的Java程序 11<br/>1.8 创建、编译和执行Java程序 13<br/>1.9 程序设计风格和文档 16<br/>1.9.1 正确的注释和注释风格 16<br/>1.9.2 正确的缩进和空白 17<br/>1.9.3 块的风格 17<br/>1.10 程序设计错误 18<br/>1.10.1 语法错误 18<br/>1.10.2 运行时错误 18<br/>1.10.3 逻辑错误 19<br/>1.10.4 常见错误 19<br/>1.11 使用NetBeans开发Java程序 20<br/>1.11.1 创建Java项目 21<br/>1.11.2 创建Java类 22<br/>1.11.3 编译和运行类 22<br/>1.12 使用Eclipse开发Java程序 23<br/>1.12.1 创建Java项目 23<br/>1.12.2 创建Java类 24<br/>1.12.3 编译和运行类 25<br/>关键术语 25<br/>本章小结 26<br/>测试题 27<br/>编程练习题 27<br/>第2章 基本程序设计 29<br/>2.1 引言 29<br/>2.2 编写简单的程序 29<br/>2.3 从控制台读取输入 32<br/>2.4 标识符 35<br/>2.5 变量 35<br/>2.6 赋值语句和赋值表达式 37<br/>2.7 命名常量 38<br/>2.8 命名习惯 39<br/>2.9 数值数据类型和操作 39<br/>2.9.1 从键盘读取数值 40<br/>2.9.2 数值操作符 41<br/>2.9.3 指数运算 42<br/>2.10 数值型字面值 43<br/>2.10.1 整型字面值 43<br/>2.10.2 浮点型字面值 43<br/>2.10.3 科学记数法 44<br/>2.11 JShell 44<br/>2.12 表达式求值和操作符优先级 46<br/>2.13 示例学习:显示当前时间 48<br/>2.14 增强赋值操作符 49<br/>2.15 自增和自减操作符 50<br/>2.16 数值类型转换 52<br/>2.17 软件开发过程 54<br/>2.18 示例学习:计算货币单位 58<br/>2.19 常见错误和陷阱 60<br/>关键术语 62<br/>本章小结 62<br/>测试题 63<br/>编程练习题 63<br/>第3章 选择 68<br/>3.1 引言 68<br/>3.2 boolean数据类型、值和表达式 68<br/>3.3 if语句 70<br/>3.4 双分支if-else语句 72<br/>3.5 嵌套的if语句和多分支if-else语句 73<br/>3.6 常见错误和陷阱 75<br/>3.7 产生随机数 79<br/>3.8 示例学习:计算体重指数 80<br/>3.9 示例学习:计算税率 82<br/>3.10 逻辑操作符 84<br/>3.11 示例学习:判断闰年 88<br/>3.12 示例学习:彩票 89<br/>3.13 switch语句 90<br/>3.14 条件操作符 93<br/>3.15 操作符的优先级和结合规则 95<br/>3.16 调试 96<br/>关键术语 96<br/>本章小结 97<br/>测试题 97<br/>编程练习题 97<br/>第4章 数学函数、字符和字符串 106<br/>4.1 引言 106<br/>4.2 常用数学函数 107<br/>4.2.1 三角函数方法 107<br/>4.2.2 指数函数方法 107<br/>4.2.3 舍入方法 108<br/>4.2.4 min、max和abs方法 108<br/>4.2.5 random方法 109<br/>4.2.6 示例学习:计算三角形的角度 109<br/>4.3 字符数据类型和操作 111<br/>4.3.1 Unicode和ASCII码 111<br/>4.3.2 特殊字符的转义序列 112<br/>4.3.3 字符型数据与数值型数据之间的类型转换 113<br/>4.3.4 比较和测试字符 114<br/>4.4 String类型 115<br/>4.4.1 获取字符串长度 116<br/>4.4.2 从字符串中获取字符 116<br/>4.4.3 连接字符串 117<br/>4.4.4 转换字符串 118<br/>4.4.5 从控制台读取字符串 118<br/>4.4.6 从控制台读取字符 119<br/>4.4.7 字符串比较 119<br/>4.4.8 获得子字符串 121<br/>4.4.9 查找字符串中的字符或者子串 121<br/>4.4.10 字符串和数值间的转换 122<br/>4.5 示例学习 124<br/>4.5.1 猜测生日 124<br/>4.5.2 将十六进制数转换为十进制数 127<br/>4.5.3 使用字符串修改彩票程序 129<br/>4.6 格式化控制台输出 130<br/>关键术语 134<br/>本章小结 134<br/>测试题 134<br/>编程练习题 134<br/>第5章 循环 140<br/>5.1 引言 140<br/>5.2 while循环 141<br/>5.3 示例学习:猜数字 143<br/>5.4 循环设计策略 146<br/>5.5 使用用户确认或标记值控制循环 148<br/>5.6 do-while循环 151<br/>5.7 for循环 153<br/>5.8 采用哪种循环 156<br/>5.9 嵌套循环 158<br/>5.10 最小化数值错误 160<br/>5.11 示例学习 161<br/>5.11.1 求最大公约数 161<br/>5.11.2 预测未来学费 163<br/>5.11.3 将十进制数转换为十六进制数 163<br/>5.12 关键字break和continue 165<br/>5.13 示例学习:判断回文 168<br/>5.14 示例学习:显示素数 170<br/>关键术语 172<br/>本章小结 172<br/>测试题 172<br/>编程练习题 173<br/>第6章 方法 181<br/>6.1 引言 181<br/>6.2 定义方法 182<br/>6.3 调用方法 183<br/>6.4 空方法与有返回值的方法 186<br/>6.5 按值传参 188<br/>6.6 模块化代码 192<br/>6.7 示例学习:将十六进制数转换为十进制数 194<br/>6.8 重载方法 195<br/>6.9 变量的作用域 198<br/>6.10 示例学习:生成随机字符 199<br/>6.11 方法抽象和逐步求精 201<br/>6.11.1 自顶向下的设计 202<br/>6.11.2 自顶向下和自底向上的实现 203<br/>6.11.3 实现细节 205<br/>6.11.4 逐步求精的优势 207<br/>关键术语 208<br/>本章小结 208<br/>测试题 209<br/>编程练习题 209<br/>第7章 一维数组 219<br/>7.1 引言 219<br/>7.2 数组基础 219<br/>7.2.1 声明数组变量 220<br/>7.2.2 创建数组 220<br/>7.2.3 数组大小和默认值 221<br/>7.2.4 访问数组元素 221<br/>7.2.5 数组初始化简写语句 222<br/>7.2.6 处理数组 222<br/>7.2.7 foreach循环 224<br/>7.3 示例学习:分析数字 226<br/>7.4 示例学习:一副牌 227<br/>7.5 复制数组 229<br/>7.6 将数组传递给方法 230<br/>7.7 方法返回数组 233<br/>7.8 示例学习:统计每个字母出现的次数 234<br/>7.9 可变长参数列表 237<br/>7.10 查找数组 238<br/>7.10.1 线性查找 238<br/>7.10.2 二分查找 239<br/>7.11 排序数组 241<br/>7.12 Arrays类 243<br/>7.13 命令行参数 245<br/>7.13.1 向main方法传递字符串 245<br/>7.13.2 示例学习:计算器 245<br/>关键术语 247<br/>本章小结 247<br/>测试题 248<br/>编程练习题 248<br/>第8章 多维数组 256<br/>8.1 引言 256<br/>8.2 二维数组基础 257<br/>8.2.1 声明二维数组变量并创建二维数组 257<br/>8.2.2 获取二维数组的长度 258<br/>8.2.3 不规则数组 258<br/>8.3 处理二维数组 259<br/>8.4 将二维数组传递给方法 261<br/>8.5 示例学习:给多选题测验评分 262<br/>8.6 示例学习:找出最近点对 264<br/>8.7 示例学习:数独 266<br/>8.8 多维数组 269<br/>8.8.1 示例学习:每日温度和湿度 270<br/>8.8.2 示例学习:猜生日 271<br/>关键术语 273<br/>本章小结 273<br/>测试题 273<br/>编程练习题 273<br/>第9章 对象和类 285<br/>9.1 引言 285<br/>9.2 为对象定义类 286<br/>9.3 示例:定义类和创建对象 287<br/>9.4 使用构造方法构造对象 292<br/>9.5 通过引用变量访问对象 293<br/>9.5.1 访问对象的数据和方法 294<br/>9.5.2 引用数据域和null值 295<br/>9.5.3 基本类型变量和引用类型变量的区别 296<br/>9.6 使用Java库中的类 297<br/>9.6.1 Date类 297<br/>9.6.2 Random类 298<br/>9.6.3 Point2D类 299<br/>9.7 静态变量、常量和方法 300<br/>9.8 可见性修饰符 305<br/>9.9 数据域封装 307<br/>9.10 向方法传递对象参数 309<br/>9.11 对象数组 313<br/>9.12 不可变对象和类 315<br/>9.13 变量的作用域 316<br/>9.14 this引用 318<br/>9.14.1 使用this引用数据域 318<br/>9.14.2 使用this调用构造方法 319<br/>关键术语 320<br/>本章小结 321<br/>测试题 321<br/>编程练习题 321<br/>第10章 面向对象 326<br/>10.1 引言 326<br/>10.2 类的抽象和封装 326<br/>10.3 面向对象思想 330<br/>10.4 类的关系 333<br/>10.4.1 关联 333<br/>10.4.2 聚集和组合 334<br/>10.5 示例学习:设计Course类 335<br/>10.6 示例学习:设计栈类 337<br/>10.7 将基本数据类型值作为对象处理 340<br/>10.8 基本类型和包装类类型之间的自动转换 343<br/>10.9 BigInteger和BigDecimal类 344<br/>10.10 String类 345<br/>10.10.1 不可变字符串与驻留字符串 346<br/>10.10.2 替换和拆分字符串 347<br/>10.10.3 使用模式匹配、替换和拆分 348<br/>10.10.4 字符串与数组之间的转换 349<br/>10.10.5 将字符和数值转换成字符串 349<br/>10.10.6 格式化字符串 350<br/>10.11 StringBuilder类和StringBuffer类 352<br/>10.11.1 修改StringBuilder中的字符串 353<br/>10.11.2 toString、capacity、length、setLength和charAt方法 354<br/>10.11.3 示例学习:判断回文串时忽略既非字母又非数字的字符 355<br/>关键术语 358<br/>本章小结 358<br/>测试题 358<br/>编程练习题 358<br/>第11章 继承和多态 366<br/>11.1 引言 366<br/>11.2 父类和子类 366<br/>11.3 使用super关键字 372<br/>11.3.1 调用父类的构造方法 372<br/>11.3.2 构造方法链 373<br/>11.3.3 调用父类的普通方法 374<br/>11.4 方法重写 375<br/>11.5 方法重写与重载 376<br/>11.6 Object类及其toString()方法 378<br/>11.7 多态 379<br/>11.8 动态绑定 379<br/>11.9 对象转换和instanceof操作符 383<br/>11.10 Object类的equals方法 387<br/>11.11 ArrayList类 388<br/>11.12 关于列表的一些有用方法 393<br/>11.13 示例学习:自定义栈类 394<br/>11.14 protected数据和方法 396<br/>11.15 防止继承和重写 398<br/>关键术语 399<br/>本章小结 399<br/>测试题 399<br/>编程练习题 400<br/>第12章 异常处理和文本I/O 404<br/>12.1 引言 404<br/>12.2 异常处理概述 405<br/>12.3 异常类型 410<br/>12.4 声明、抛出和捕获异常 411<br/>12.4.1 声明异常 412<br/>12.4.2 抛出异常 412<br/>12.4.3 捕获异常 413<br/>12.4.4 从异常中获取信息 415<br/>12.4.5 示例学习:声明、抛出和捕获异常 416<br/>12.5 finally子句 419<br/>12.6 何时使用异常 421<br/>12.7 重新抛出异常 422<br/>12.8 链式异常 422<br/>12.9 创建自定义异常类 423<br/>12.10 File类 426<br/>12.11 文件输入和输出 429<br/>12.11.1 使用PrintWriter写数据 429<br/>12.11.2 使用try-with-resources自动关闭资源 430<br/>12.11.3 使用Scanner读取数据 431<br/>12.11.4 Scanner如何工作 433<br/>12.11.5 示例学习:替换文本 434<br/>12.12 从Web上读取数据 436<br/>12.13 示例学习:Web爬虫 437<br/>关键术语 440<br/>本章小结 440<br/>测试题 441<br/>编程练习题 441<br/>第13章 抽象类和接口 446<br/>13.1 引言 446<br/>13.2 抽象类 446<br/>13.2.1 为何使用抽象方法 448<br/>13.2.2 抽象类的几点说明 450<br/>13.3 示例学习:抽象的Number类 451<br/>13.4 示例学习:Calendar和GregorianCalendar 453<br/>13.5 接口 456<br/>13.6 Comparable接口 459<br/>13.7 Cloneable接口 463<br/>13.8 接口与抽象类 468<br/>13.9 示例学习:Rational类 471<br/>13.10 类的设计原则 477<br/>13.10.1 内聚性 477<br/>13.10.2 一致性 477<br/>13.10.3 封装性 477<br/>13.10.4 清晰性 477<br/>13.10.5 完整性 478<br/>13.10.6 实例和静态 478<br/>13.10.7 继承和聚合 479<br/>13.10.8 接口和抽象类 479<br/>关键术语 479<br/>本章小结 479<br/>测试题 480<br/>编程练习题 480<br/>第14章 JavaFX基础 484<br/>14.1 引言 484<br/>14.2 JavaFX与Swing和AWT的比较 484<br/>14.3 JavaFX程序的基本结构 485<br/>14.4 面板、组、UI控件和形状 487<br/>14.5 属性绑定 490<br/>14.6 结点的共同属性和方法 493<br/>14.7 Color类 494<br/>14.8 Font类 496<br/>14.9 Image和ImageView类 497<br/>14.10 布局面板和组 500<br/>14.10.1 FlowPane 500<br/>14.10.2 GridPane 502<br/>14.10.3 BorderPane 504<br/>14.10.4 HBox和VBox 506<br/>14.11 形状 508<br/>14.11.1 Text 508<br/>14.11.2 Line 510<br/>14.11.3 Rectangle 511<br/>14.11.4 Circle和Ellipse 513<br/>14.11.5 Arc 515<br/>14.11.6 Polygon和Polyline 517<br/>14.12 示例学习:ClockPane类 520<br/>关键术语 525<br/>本章小结 525<br/>测试题 25<br/>编程练习题 526<br/>第15章 事件驱动编程和动画 531<br/>15.1 引言 531<br/>15.2 事件和事件源 533<br/>15.3 注册处理器和处理事件 534<br/>15.4 内部类 538<br/>15.5 匿名内部类处理器 539<br/>15.6 使用lambda表达式简化事件处理 542<br/>15.7 示例学习:贷款计算器 546<br/>15.8 鼠标事件 548<br/>15.9 键盘事件 549<br/>15.10 可观察对象的监听器 552<br/>15.11 动画 554<br/>15.11.1 PathTransition 555<br/>15.11.2 FadeTransition 558<br/>15.11.3 Timeline 559<br/>15.12 示例学习:弹球 562<br/>15.13 示例学习:美国地图 565<br/>关键术语 568<br/>本章小结 569<br/>测试题 569<br/>编程练习题 569<br/>第16章 JavaFX UI控件和多媒体 576<br/>16.1 引言 576<br/>16.2 Labeled和Label 577<br/>16.3 Button 579<br/>16.4 CheckBox 581<br/>16.5 RadioButton 584<br/>16.6 TextField 586<br/>16.7 TextArea 588<br/>16.8 ComboBox 591<br/>16.9 ListView 594<br/>16.10 ScrollBar 597<br/>16.11 Slider 600<br/>16.12 示例学习:开发井字游戏 603<br/>16.13 视频和音频 608<br/>16.14 示例学习:国旗和国歌 611<br/>本章小结 613<br/>测试题 614<br/>编程练习题 614<br/>第17章 二进制 I/O 620<br/>17.1 引言 620<br/>17.2 Java如何处理文本I/O 620<br/>17.3 文本I/O与二进制I/O 621<br/>17.4 二进制I/O类 623<br/>17.4.1 FileInputStream和FileOutputStream 624<br/>17.4.2 FilterInputStream和FilterOutputStream 626<br/>17.4.3 DataInputStream和DataOutputStream 626<br/>17.4.4 BufferedInputStream和BufferedOutputStream 629<br/>17.5 示例学习:复制文件 632<br/>17.6 对象I/O 634<br/>17.6.1 Serializable接口 636<br/>17.6.2 序列化数组 637<br/>17.7 随机访问文件 638<br/>关键术语 642<br/>本章小结 642<br/>测试题 642<br/>编程练习题 642<br/>第18章 递归 645<br/>18.1 引言 645<br/>18.2 示例学习:计算阶乘 646<br/>18.3 示例学习:计算斐波那契数 649<br/>18.4 使用递归解决问题 651<br/>18.5 递归辅助方法 653<br/>18.5.1 递归选择排序 654<br/>18.5.2 递归二分查找 654<br/>18.6 示例学习:获取目录的大小 655<br/>18.7 示例学习:汉诺塔 657<br/>18.8 示例学习:分形 660<br/>18.9 递归与迭代 664<br/>18.10 尾递归 664<br/>关键术语 665<br/>本章小结 665<br/>测试题 666<br/>编程练习题 666<br/>附录A Java关键字和保留字 672<br/>附录B ASCII字符集 673<br/>附录C 操作符优先级表 674<br/>附录D Java修饰符 675<br/>附录E 特殊浮点值 676<br/>附录F 数系 677<br/>附录G 位操作符 681<br/>附录H 正则表达式 682<br/>附录I 枚举类型 688<br/>附录J 大O、大Ω和大Θ表示法 692

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网