Java语言的科学与艺术

副标题:无

作   者:(美)Eric S.Roberts著;付勇译

分类号:

ISBN:9787302184416

微信扫一扫,移动浏览光盘

简介

   自1995年首次发布以来,Java编程语言作为一种教学语言变得日益重   要,现在已经成为初级计算课程斯坦福大学的标准语言。Java语言可以让   学生编写高度交互式程序,这充分激发了他们的学习兴趣。但Java语言很   复杂,老师和学生们在理解Java语言的结构时,复杂性成为了最大的障碍   。    在本书中,斯坦福大学教授、著名的计算机科学教育领导者Eric   S.Roberts着重强调了更适合于初学者的友好讲解方式,使用ACM Java库简   化编程。本书简练清晰地介绍了传统CS1课程的内容,同时也包含了最近的   Computing Curriculum 2001报告计算机科学卷中指定为CS101O或CS111O课   程的全部主题。   

目录

第1章 前言. 1
1.1 计算简史 1
1.2 计算机科学的含义 3
1.3 计算机硬件简介 4
1.3.1 CPU 5
1.3.2 内存 5
1.3.3 辅助存储器 5
1.3.4 输入/输出(I/O)设备 5
1.3.5 网络 5
1.4 算法 6
1.5 编程过程的几个阶段 6
1.5.1 创建和编辑程序 7
1.5.2 编译过程 7
1.5.3 编程错误与调试 9
1.5.4 软件维护 9
1.6 Java和面向对象范例 10
1.6.1 面向对象编程的历史 11
1.6.2 Java编程语言 11
1.7 Java和WWW 14
1.8 小结 15
1.9 复习题 16
第2章 编程示例 17
2.1 “Hello world”程序 18
2.1.1 注释 19
2.1.2 输入 19
2.1.3 主类 19
2.2 编程过程的观点 21
2.3 两数相加的程序 22
2.4 编程习语和模式 25
2.5 类和对象 26
2.5.1 类的层次结构 27
2.5.2 Program类的层次结构 28
2.6 图形程序 29
2.6.1 HelloProgram示例回顾 29
2.6.2 向GObjects发送消息 30
2.6.3 GObject类的层次结构 32
2.6.4 GRect类 33
2.6.5 GOval类 36
2.6.6 GLine类 37
2.7 小结 38
2.8 复习题 39
2.9 编程练习 40
第3章 表达式 43
3.1 原始数据类型 44
3.2 常量与变量 45
3.2 1 常量 45
3.2 2 变量 46
3.2 3 声明 47
3.2 4 命名常量 48
3.3 运算符和操作数 48
3.3.1 合并整数和浮点数 49
3.3 2 整数除法和余数运算符 50
3.3 3 优先级 50
3.3 4 应用优先级规则 52
3.3 5 类型转换 53
3.4 赋值语句 55
3.4.1 简写赋值运算符 57
3.4.2 递增运算符和递减运算符 58
3.5 布尔表达式 58
3.5 1 关系运算符 58
3.5 2 逻辑运算符 59
3.5 3 短路赋值 61
3.5 4 标记 62
3.5.5 Boolean计算示例 62
3.6 设计改变 63
3.6 1 可读性的重要性 63
3.6 2 使用命名常量支持程序维护 64
3.6 3 使用命名常量支持程序开发 64
3.7 小结 66
3.8 复习题 68
3.9 编程练习 69
第4章 语句形式 73
4.1 Java的语句类型 74
4.1.1 简单语句 74
4.1.2 复合语句 75
4.1.3 控制语句 76
4.2 控制语句和问题解决 76
4.2.1 一般化Add2Integers程序 77
4.2.2 重复N次模式 78
4.2.3 “读取到指定条件为止”模式 79
4.3 if 语句 80
4.3.1 单行if语句 82
4.3.2 多行if语句 82
4.3.3 if-else语句 83
4.3.4 级联if语句 83
4.3.5 ?:运算符 84
4.4 switch语句 85
4.5 while语句 88
4.5.1 使用while循环 88
4.5.2 无限循环 90
4.5.3 解决“循环到中途”问题 90
4.6 for语句 92
4.6.1 for和while之间的关系 94
4.6.2 在浮点数据中使用for语句 95
4.6.3 嵌套for语句 96
4.6.4 简单的图形动画 97
4.7 小结 99
4.8 复习题 100
4.9 编程练习 100
第5章 方法 105
5.1 方法概述 105
5.1.1 作为降低复杂性机制的方法 106
5.1.2 作为编程人员工具而不是用户工具的方法 106
5.1.3 作为表达式的方法调用 107
5.1.4 作为消息的方法调用 108
5.2 编写自己的方法 109
5.2.1 方法定义的格式 109
5.2.2 return语句 110
5.2.3 包含内部控制结构的方法 111
5.2.4 返回非数字值的方法 112
5.2.5 断言方法 115
5.3 方法调用过程的技巧 116
5.3.1 参数传递 117
5.3.2 从其他方法内调用方法 120
5.4 分解 126
5.4.1 逐步细化 126
5.4.2 指定参数 128
5.4.3 自顶向下设计 129
5.4.4 寻找共同特征 130
5.4.5 完成分解 131
5.5 算法方法 132
5.5.1 “强力”方法 132
5.5.2 欧几里得算法 133
5.5.3 讨论欧几里得算法的正确性 133
5.5.4 两种算法的效率比较 134
5.6 小结 135
5.7 复习题 135
5.8 编程练习 136
第6章 对象和类 141
6.1 使用RandomGenerator类 142
6.1.1 伪随机数 142
6.1.2 使用RandomGenerator类 143
6.1.3 随机数种子的作用 145
6.2 javadoc文档系统 146
6.3 定义自己的类 149
6.3.1 类定义的结构 149
6.3.2 控制条目的可见性 150
6.3.3 封装 150
6.4 表示学生信息 150
6.4.1 声明实例变量 151
6.4.2 完成类定义 151
6.4.3 编写javadoc注释 154
6.4.4 写构造函数 154
6.4.5 getters and setters 155
6.4.6 toString方法 155
6.4.7 定义类中的命名常量 156
6.4.8 使用Student类 156
6.5 有理数 157
6.6 扩展现有类 161
6.6.1 创建类表示实心三角形 161
6.6.2 继承构造函数的规则 165
6.6.3 继承方法的规则 165
6.7 小结 167
6.8 复习题 168
6.9 编程练习 169
第7章 对象和内存 175
7.1 内存结构 176
7.1.1 位、字节和字 176
7.1.2 二进制和十六进制表示法 176
7.1.3 内存地址 178
7.2 将内存分配给变量 179
7.2.1 Rational类的内存图.. 180
7.2.2 无用单元收集 184
7.3 原始类型与对象 185
7.3.1 参数传递 185
7.3.2 包装类 187
7.3.3 装箱和拆箱 189
7.4 链接对象 190
7.4.1 链接结构里的消息传递:Gondor灯塔 191
7.4.2 链接结构的内部表示法 193
7.5 小结 194
7.6 复习题 195
7.7 编程练习 195
第8章 字符串和字符 199
8.1 枚举的原则 200
8.1.1 在计算机内部表示枚举类型 200
8.1.2 将枚举类型作为整数表示 201
8.1.3 定义新的枚举类型 202
8.2 字符 203
8.2.1 char数据类型 203
8.2.2 ASCII和Unicode编码系统 203
8.2.3 字符常量 205
8.2.4 Unicode表示法的重要属性 205
8.2.5 特殊字符 206
8.2.6 字符算法 207
8.2.7 Character类中有用的方法 208
8.2.8 包含字符的控制语句 209
8.3 作为抽象概念的字符串 210
8.3.1 从整体和简化论的观点考察字符串 210
8.3.2 抽象类型的概念 210
8.4 使用String类中的方法 211
8.4.1 确定字符串长度 212
8.4.2 从字符串中选择字符 212
8.4.3 串联 213
8.4.4 摘录部分字符串 215
8.4.5 比较两个字符串 215
8.4.6 在字符串内搜索 216
8.4.7 大小写字母转换 217
8.5 字符串处理案例研究 218
8.5.1 应用自顶向下设计 218
8.5.2 实现translateLine 219
8.5.3 考虑空格和标点符号 220
8.5.4 StringTokenizer类 222
8.5.5 完成实现 223
8.6 小结 226
8.7 复习题 227
8.8 编程练习 228
第9章 面向对象图形 237
9.1 acm.graphics模型 238
9.2 acm.graphics程序包的结构 238
9.2.1 GCanvas类 239
9.2.2 Color类的更多细节 241
9.2.3 GPoint类、GDimension类和GRectangle类 241
9.2.4 GMath类 242
9.2.5 GObject类及其子类 243
9.3 使用形状类 246
9.3.1 GLabel类 246
9.3.2 GRect类及其子类(GRoundRect和G3DRect) 248
9.3.3 GOval类 249
9.3.4 GLine类 249
9.3.5 GArc类 250
9.3.6 GImage类 253
9.3.7 GPolygon类 257
9.4 创建复合对象 262
9.4.1 简单的GCompound示例 263
9.4.2 GCompound坐标系 265
9.4.3 使用GCompound的对象分解 265
9.4.4 嵌套GCompound对象 269
9.5 小结 270
9.6 复习题 271
9.7 编程练习 272
第10章 事件驱动程序 279
10.1 Java事件模型 280
10.2 简单的事件驱动程序 281
10.3 响应鼠标事件 283
10.3.1 MouseListener和MouseMotionListener接口 283
10.3.2 重写侦听器方法 283
10.3.3 画线程序 284
10.3.4 在画布上拖动对象 286
10.4 响应键盘事件 288
10.5 创建简单的GUI 289
10.6 Swing 交互器层次结构 291
10.6.1 JButton类 292
10.6.2 JToggleButton 类 293
10.6.3 JCheckBox类 293
10.6.4 JRadioButton类和ButtonGroup类 295
10.6.5 JSlider类和JLabel类 296
10.6.6 JComboBox类 297
10.6.7 JTextField类、IntField类和DoubleField类 300
10.7 管理组件布局 304
10.7.1 Java窗口层次结构 304
10.7.2 布局管理器 305
10.7.3 BorderLayout布局管理器 305
10.7.4 FlowLayout布局管理器 307
10.7.5 GridLayout布局管理器 308
10.7.6 标准布局管理器的不足 309
10.8 使用TableLayout类 309
10.8.1 比较GridLayout与TableLayout 310
10.8.2 使用TableLayout创建温度转换器 310
10.8.3 指定约束 312
10.8.4 使用TableLayout创建简单的计算器 313
10.9 小结 319
10.10 复习题 320
10.11 编程练习 321
第11章 数组与ArrayList类 327
11.1 数组简介 328
11.1.1 数组声明 328
11.1.2 数组选择 329
11.1.3 简单数组的示例 330
11.1.4 改变索引范围 331
11.1.5 对象的数组 332
11.1.6 在图形程序中使用数组 332
11.1.7 ++和––运算符的区别 334
11.2 数组的内部表示法 335
11.3 数组作为参数传递 337
11.4 使用数组制作表格 341
11.5 数组初始化 343
11.6 多维数组 344
11.6.1 将多维数组传递给方法 345
11.6.2 初始化多维数组 346
11.7 图像处理 346
11.7.1 图像的表示方式 346
11.7.2 使用GImage类操作图像 347
11.7.3 位操作 348
11.7.4 使用位操作分解像素组件 350
11.7.5 创建灰度图像 350
11.7.6 通过平均使图像变得平滑 351
11.7.7 隐藏复杂性 353
11.8 ArrayList类 354
11.9 小结 358
11.10 复习题 359
11.11 编程练习 360
第12章 搜索与排序 369
12.1 搜索 370
12.1.1 在整数数组中搜索 370
12.1.2 搜索表 370
12.1.3 折半搜索 373
12.1.4 搜索算法的相对效率 375
12.2 排序 376
12.2.1 给整数数组排序 376
12.2.2 选项排序算法 377
12.2.3 评估选项排序的效率 379
12.2.4 测量程序的运行时间 380
12.2.5 分析选项排序算法 381
12.2.6 基数排序算法 382
12.3 评估算法效率 384
12.3.1 big-O表示法 385
12.3.2 big-O的标准简化 385
12.3.3 选项排序计算的复杂性 385
12.3.4 根据代码结构预测计算的复杂性 386
12.3.5 最坏情况与一般情况的复杂性 387
12.4 使用数据文件 388
12.4.1 文件的概念 388
12.4.2 阅读Java中的文本文件 389
12.4.3 异常处理 391
12.4.4 倒转文件的程序 393
12.4.5 交互地选择文件 394
12.4.6 使用Scanner类 395
12.4.7 输出文件 397
12.5 小结 397
12.6 复习题 398
12.7 编程练习 400
第13章 数组与ArrayList类 405
13.1 ArrayList类回顾 406
13.1.1 动态分配的能力 406
13.1.2 区分表示法和行为 408
13.2 HashMap类 409
13.2.1 映射的简单示例 409
13.2.2 探讨可能的实现策略 410
13.2.3 实现O(1)性能 411
13.2.4 散列法思想 412
13.2.5 散列码 412
13.2.6 复制散列码 413
13.2.7 映射类的简单实现 413
13.2.8 实现hashCode方法 416
13.2.9 调整存储区的数量 418
13.3 Java集合架构 418
13.3.1 Java集合架构的结构 419
13.3.2 Collection层次结构 420
13.3.3 区分行为和表示法 421
13.3.4 迭代器 422
13.3.5 Arrays和Collections方法库 424
13.4 面向对象设计的原则 426
13.4.1 统一主题的重要性 427
13.4.2 简单和信息隐藏的原则 428
13.4.3 满足客户的需要 428
13.4.4 灵活性的好处 429
13.4.5 稳定的意义 429
13.5 小结 430
13.6 复习题 430
13.7 编程练习 431
第14章 展望 435
14.1 递归 436
14.1.1 递归的简单示例 436
14.1.2 Factorial 函数 437
14.1.3 信任的递归式跳跃 440
14.1.4 递归的范例 441
14.1.5 图形递归 442
14.1.6 递归式思考 444
14.2 并发 445
14.2.1 进程与线程 445
14.2.2 并发的简单示例 445
14.3 使用网络 448
14.4 编程模式 448
14.4.1 模型/视图/控制器模式 449
14.4.2 说明性示例:用图表示电子数据表的数据 449
14.5 小结 453
14.6 复习题 454
14.7 编程练习... 454

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

Java语言的科学与艺术
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon