书籍详情

Java面向事件编程

Java面向事件编程

作者:(美)布鲁斯等

出版社:清华大学出版社

出版时间:2007-02-01

ISBN:9787302144663

定价:¥69.00

购买这本书可以去
内容简介
  《Java面向事件编程(计算机科学与技术)》旨在帮助学生首先掌握对象和事件——这样他们很快就可以开始使用Java来完成一些重要的编程任务。《Java面向事件编程(计算机科学与技术)》由计算机科学教育领域的三位顶级专家编写,其中包括2005年SIGCSE奖得主Kim Bruce,这几位专家从根本上重新思考了究竟该如何讲授Java以及其他面向对象语言这一问题,《Java面向事件编程(计算机科学与技术)》正是他们共同努力的结晶。为了给学生提供“训练车轮”,他们需要尽早开始使用复杂的Java特性,《Java面向事件编程(计算机科学与技术)》作者引入了一个完整的面向对象图形库。使用该库时,学生可以立即着手编写简单的图形和动画程序,而且能够看到他们所编写代码的实际结果。与传统教学方式相比,学生能够更快地了解核心的Java特性,而且在具有必要的知识储备后,可以快速掌握一些诸如并发之类的强大Java特性。《Java面向事件编程(计算机科学与技术)》的对象优先方法、内容和特点已经在世界上许多顶级大学、四年制学院和两年制学院的教学实践中系统地得以证实。这些特点包括◆ 牢牢着眼于使用GUI组件的事件驱动的编程:学生通过体验单击环境来认识编程的方式;◆ 逐步、完整地涵盖所有典型的基础知识,包括数组、字符串、递归、文件、排名、搜索、继承性等;◆ 一种讲授异常的有效方式;◆ 一个有关面向对象设计基础知识的初级读本;◆ 每章中间都包含有习题,用于评估学习进度;◆ 每章末尾具有复习题和编程题,强化在该章学习的关键概念和技术;◆ 附录解释了如何浏览并阅读Java API。
作者简介
  Kim B.Bruce,是波莫纳学院的计算机科学教授,他从麦迪逊的威斯康星大学获得博士学位,曾在威廉斯学院和普林斯顿大学任教。他还在一些国家级的计算机科学课程委员会担任职务,并且由于在计算机科学教育领域做出的突出贡献而获得2005 SIGCSE奖。Andrea Pohoreckyj Danyluk是威廉斯学院的计算机科学副教授,她从哥伦比亚大学获得博士学位,并曾为ACM/IEEE计算课程特别工作组做出过贡献。Thomas P. Murtagh是威廉斯学院的计算机科学教授,他从康奈尔大学获得博士学位,并曾任教于珀德尤大学。他曾经出版过计算机科学教学法和课程设计,以及有关编译器优化到操作系统设计等方面主题的论著。
目录
第1章  什么是编程    1
1.1  在并不了解的情况下    2
1.2  Java编程语言    5
1.3?Java初体验    6
1.3.1  简单的响应程序    7
1.3.2  "Class"和其他关键字    8
1.3.3  关于方法的介绍    9
1.4  编程工具    11
1.5  绘图原始命令    14
1.5.1  图形坐标系统    14
1.5.2  构建图形对象    16
1.6  其他事件处理方法    19
1.6.1  鼠标事件处理方法    19
1.6.2  begin方法    20
1.7  错误分析    21
1.8  小结    23
1.9  本章复习题    24
1.10  编程题    25
第2章  Java中的名称    26
2.1  命名和修改对象    26
2.1.1  修改器方法    26
2.1.2  实例变量声明    28
2.1.3  为变量名指定含义    29
2.1.4  注释    30
2.1.5  其他的修改器方法    31
2.1.6  习题    33
2.2  非图形类对象    35
2.2.1  颜色类    35
2.2.2  Location类    37
2.3  画布上的层次    40
2.4  访问鼠标的位置    41
2.5  在方法之间共享参数信息    42
2.6  小结    47
2.7  本章复习题    47
2.8  编程题    48
第3章  处理数字    50
3.1  访问器方法介绍    50
3.2  访问画布的数值属性    52
3.3  表达式和语句    53
3.4  算术表达式    55
3.5  数值实例变量    58
3.6  初始值设定项    60
3.7  命名数值变量    61
3.8  显示数值信息    63
3.8.1  将数字作为Text显示    64
3.8.2  使用System.out.println    65
3.8.3  混合文本和数字    67
3.9  随机数    69
3.10  小结    71
3.11  本章复习题    72
3.12  编程题    73
第4章  进行选择    76
4.1  一个简单的例子:使用if语句统计选票    76
4.2  if 语句    79
4.3  了解条件    81
4.4  在多个选项之间选择    84
4.5  有关Boolean表达式的更多内容    87
4.6  嵌套条件    90
4.7  小结    94
4.8  本章复习题    95
4.9  编程题    97
第5章  基本类型、运算符和字符串    99
5.1  运算符和方法调用    100
5.2  不同但相等    103
5.3  运算符和优先级规则    105
5.4  Double类型    106
5.4.1  Java需要多种数值类型    107
5.4.2  使用double和int的算术    108
5.4.3  显示double值    111
5.4.4  将有理数称为double的原因    112
5.4.5  选择某种数值类型    113
5.5  数值信息的方便来源    113
5.5.1  确定时间信息    113
5.5.2  高级数学计算    115
5.6  字符串    119
5.7  本章复习题    122
5.8  编程题    124
第6章  类    126
6.1  一个没有类的例子    126
6.2  编写FunnyFace类    129
6.2.1  实例变量    130
6.2.2  方法和参数    130
6.2.3  编写访问器方法    131
6.2.4  构造函数    132
6.2.5  组装到一起    134
6.3  加入方法到FunnyFace    136
6.3.1  加入一些类似已编写方法的方法    137
6.3.2  间接定义方法    137
6.3.3  使用this作为参数    139
6.4  另外一个例子:实现Timer类    140
6.5  局部变量    142
6.6  重载方法和构造函数    145
6.7  小结    148
6.8  本章复习题    148
6.9  编程题    149
第7章  控制结构    151
7.1  重复过程和while循环    151
7.2  使用while循环的更多例子    155
7.3  可以计数的循环    157
7.4  嵌套循环    158
7.5  控制结构风格指导意见    161
7.6  第摩根法则和复杂的boolean表达式    164
7.7  简化条件语句的语法    166
7.8  switch语句*    172
7.9  小结    174
7.10  本章复习题    174
7.11  编程题    175
第8章  声明和作用域    178
8.1  访问控制:public和private    178
8.2  使用实例变量、参数和局部变量    181
8.3  标识符的作用域    183
8.4  使用static    186
8.5  小结    187
8.6  本章复习题    187
第9章  活动对象    189
9.1  动画    189
9.2  活动对象    190
9.3  Image和VisibleImage    192
9.4  与活动对象交互    194
9.5  使活动对象影响到其他的对象    197
9.5.1  与非活动对象交互    197
9.5.2  构建其他活动对象的活动对象    198
9.6  不带循环的活动对象    201
9.7  使动画效果更平滑    202
9.8  有关计时的更多提示    203
9.9  小结    205
9.10  本章复习题    205
9.11  编程题    206
第10章  接口    207
10.1?提供灵活性的接口    207
10.1.1  第一个例子    207
10.1.2  将对象和类与接口相关    208
10.1.3  使用接口    212
10.1.4  接口的其他特性    214
10.1.5  小结    215
10.2  在objectdraw库中使用接口    215
10.3  扩展接口*    218
10.4  小结    220
10.5  本章复习题    220
10.6  编程题    221
第11章  Java中的图形用户界面    223
11.1  文本字段    223
11.1.1  加入文本字段到窗口中    225
11.1.2  从文本字段获得信息    226
11.2  Java中的按钮和事件    227
11.2.1  创建和加入按钮    228
11.2.2  处理事件    228
11.3  在程序中使用GUI组件的步骤
??? 清单    229
11.4  组合框    230
11.5  面板和布局管理器    235
11.5.1  面板    235
11.5.2  有关布局管理器的更多
????内容    238
11.6  其他GUI组件    240
11.6.1  滑块    240
11.6.2  标签    243
11.6.3  JTextField和JTextArea    244
11.7  处理击键和鼠标事件    247
11.7.1  击键事件    247
11.7.2  鼠标事件    249
11.8  小结    250
11.9  本章复习题    252
11.10  编程题    253
第12章  递归    254
12.1  递归结构    255
12.1.1  嵌套矩形    255
12.1.2  使用递归结构来创建并
????搜索数据集合    263
12.1.3  设计递归结构    266
12.1.4  为什么能够奏效    268
12.1.5  花菜图案    269
12.2  递归方法    274
12.2.1  快速求幂    275
12.2.2  汉诺塔    277
12.3  小结    280
12.4  本章复习题    280
12.5  编程题    281
第13章  Java中的一般循环    282
13.1  确定循环模式    282
13.2  计数和for循环    283
13.2.1  使用for循环的例子    284
13.2.2  for循环的其他变化形式    287
13.3  do-while循环    288
13.4  避免循环错误    289
13.4.1  循环次数相差1的错误    289
13.4.2  无限循环    290
13.4.3  在终止条件中使用double类型    291
13.5  小结    292
13.6  本章复习题    293
13.7  编程题    294
第14章  数组    295
14.1  声明数组名称    295
14.2  创建数组    296
14.3  使用数组:一个三角类    300
14.4  Java 1.5中的增强型for循环    303
14.5  收集数组信息    304
14.5.1  超速驾驶驾驶员计数    306
14.5.2  绘制直方图    307
14.6  包含变量大小的集合    311
14.6.1  并行数组和对象数组    313
14.6.2  跟踪集合的大小    314
14.6.3  加入项目到数组    315
14.6.4  显示结果    316
14.7  添加和删除数组元素    322
14.7.1  加入某个元素到一个顺序
????数组    322
14.7.2  从数组删除某个元素    328
14.8  小结    330
14.9  本章复习题    331
14.10  编程题    335
第15章  多维数组    338
15.1  一般的二维数组    338
15.1.1  声明数组的数组    339
15.1.2  创建数组的数组    339
15.1.3  对数组的数组进行索引    341
15.1.4  遍历二维数组    342
15.1.5  超越二维:扩展日历程序    344
15.2  矩阵    347
15.2.1  魔力方块    348
15.2.2  声明和构建矩阵    348
15.2.3  遍历矩阵    348
15.2.4  填充魔力方块    351
15.2.5  数字图像平滑    353
15.3  小结    357
15.4  本章复习题    357
15.5  编程题    359
第16章  字符串和字符    362
16.1  小字符串和大字符串    362
16.1.1  空白字符串    362
16.1.2  长字符串    363
16.2  有用的String方法集锦    365
16.2.1  创建一个URL字符串    365
16.2.2  使用indexOf来查找
????子字符串的位置    365
16.2.3  处理小写和大写    367
16.2.4  剪切和粘贴字符串    369
16.2.5  修整字符串    371
16.2.6  比较字符串    372
16.3  字符    374
16.3.1  字符和字符串    375
16.3.2  对字符进行操作    377
16.4  小结    379
16.5  本章复习题    381
16.6  编程题    383
第17章  继承    385
17.1  特殊化扩展    385
17.2  使用extends    386
17.3  protected和public    391
17.4  设计用于扩展    394
17.5  继承的层次结构    397
17.6  重写方法定义    401
17.6.1  object类以及equals和toString方法    403
17.6.2  使用super访问重写的方法    403
17.6.3  动态方法调用    405
17.6.4  有计划的废弃    406
17.6.5  抽象类和抽象方法    410
17.7  小结    411
17.8  本章复习题    411
17.9  编程题    417
第18章  异常    420
18.1  异常处理程序    421
18.2  异常是对象    424
18.3  异常传递    424
18.4  处理多个异常    426
18.5  异常子类    427
18.6  检查异常和未检查异常    429
18.7  抛出异常    432
18.8  小结    433
18.9  本章复习题    434
18.10  编程题    436
第19章  流    438
19.1  文本流    439
19.1.1  书签文件:一个示例    439
19.1.2  创建一个Writer    441
19.1.3  通过Writer发送数据    442
19.1.4  PrintWriter    445
19.1.5  构成Writer类    446
19.2  Reader    447
19.3  编写一个应用程序    451
19.4  处理文件系统    455
19.5  Socket和流    459
19.5.1  客户和服务器    459
19.5.2  网络协议    460
19.5.3  创建和使用Socket    461
19.5.4  从服务器接收信息    462
19.5.5  从Web页面提取信息    465
19.6  小结    468
19.7  本章复习题    469
19.8  编程题    473
第20章  查找和排序    475
20.1  查找    475
20.1.1  线性查找    476
20.1.2  数组的递归处理方式    476
20.1.3  线性查找的复杂度    478
20.1.4  二叉查找    478
20.2  使用先验条件和后验条件    482
20.3  排序    483
20.3.1  选择排序    484
20.3.2  选择排序的复杂度    487
20.3.3  插入排序    488
20.3.4  插入排序的复杂度    490
20.3.5  归并排序    491
20.3.6  归并排序的复杂度    494
20.4  查找和排序的复杂度的影响    496
20.5  小结    497
20.6  本章复习题    497
第21章  面向对象设计简介    498
21.1  什么是面向对象设计    498
21.2  属性和行为    499
21.2.1  为对象的属性建模    499
21.2.2  对行为建模    499
21.3  设计基本原理    500
21.3.1  设计步骤1:确定要建模
????的对象    500
21.3.2  设计步骤2:列出每种对象的属性和行为    500
21.3.3  设计步骤3:用实例变量对属性建模    502
21.3.4  设计步骤4:用方法对行为建模    504
21.3.5  设计:细化的过程    507
21.3.6  填充细节    507
21.3.7  设计过程总结    513
21.4  增量式测试和调试    514
21.4.1  开发和测试各个类    514
21.4.2  把各部分组装起来:测试控制器    516
21.5  不对现实世界建模的类    517
21.5.1  动画式藏豆赌博游戏    518
21.5.2  确定不代表现实世界实体的类    518
21.5.3  完成动画式藏豆赌博游戏的设计    518
21.5.4  填充动画式藏豆赌博游戏的细节    522
21.6  编写注释的指导原则    524
21.7  封装和信息隐藏    526
21.7.1  嵌套矩形:一个图形对象类    526
21.7.2  封装和抽象之间的
????重要关系    529
21.8  小结    529
21.9  本章复习题    530
21.10  编程题    530
附录A  编程风格指导原则    532
A.1  加注释    532
A.2  空白行    533
A.3  名称    533
A.4  格式    533
附录B  objectdraw API总结    534
B.1?WindowController    534
B.1.1?在Controller或WindowController
的扩展中定义的方法    534
B.1.2  在WindowController的扩展中
定义的方法    534
B.1.3  在扩展Controller或
WindowController的类中
调用的方法    534
B.2  ActiveObject    535
B.2.1  在ActiveObject的扩展中
定义的方法    535
B.2.2  在扩展ActiveObject的类中
调用的方法    535
B.3  Drawable对象    535
B.3.1  Drawable对象的构造函数    535
B.3.2  用于所有Drawable对象
的方法    537
B.3.3  仅用于Line的方法    537
B.3.4  用于矩形、椭圆形、VisibleImage
和Text对象的方法    538
B.3.5  仅用于矩形、椭圆形和
VisibleImage的方法    538
B.3.6  仅用于Text对象的方法    538
B.4  辅助类    538
B.4.1  辅助对象的构造函数    538
B.4.2  用于Location对象的方法    538
B.4.3  用于RandomIntGenerator
对象的方法    539

B.4.4  用于RandomDoubleGenerator
对象的方法    539
B.5  类型和接口层次结构    539
B.5.1  几何对象的子类层次结构    539
B.5.2  几何对象的子接口层次结构    539
B.5.3  控制器的子类层次结构    540
附录C  浏览Java API    541
C.1  objectdraw文档简介    541
C.2?获取关于某个类的信息    542
C.2.1  关于构造函数和方法的汇总
信息    542
C.2.2  关于构造函数和方法的详细
信息    544
C.3  何时应该查阅API    545
C.4  其他Java API    546
附录D  不使用objectdraw编程    547
D.1  扩展JApplet而不是Controller    547
D.2  扩展JApplet而不是
???WindowController    548
D.3  Java线程可以代替ActiveObject    549
D.4  Java图形    550
D.5  随机数生成器    553
D.6  应用程序与Java小程序    553
D.6.1  将Java小程序修改成应用
程序    554
D.6.2  从JFrame中运行Java
小程序    555

猜您喜欢

读书导航