目 录 1
第1章计算机和编程语言概述 1
1.1 简介 1
1.2概述计算机的发展史 2
1.3计算机系统的描述 2
1.3.1硬件 2
1.3.2软件 4
1.4计算机语言 4
1.5编程语言的发展史 5
1.6 Java程序的执行 6
1.7规划分析-编码-执行周期中出现的问题 8
1.8编程方法 12
1.8.1结构化编程 12
1.8.2面向对象编程 12
1.9快速回顾 13
1.10练习题 14
第2章Jave的基本元素 16
2.1 Java程序的基础知识 17
2.1.1特殊字符 17
2.1.3标识符 18
2.1.2关键字 18
2.2数据类型 19
2.3算术运算符和运算符的优先级 22
2.4表达式 25
2.5类型转换(强制转换) 27
2.6String类 28
2.7输入 31
2.7.1为已命名常量和变量分配内存 31
2.7.2对变量赋值 32
2.7.3保存和使用表达式的值 34
2.7.5输入(读)语句 35
2.7.4声明和初始化变量 35
2.8递增运算符和递减运算符 42
2.9字符串和运算符+ 44
2.10输出 45
2.11包、类、方法和import语句 51
2.12创建Java应用程序 52
2.13编程风格和方式 55
2.13.1 语法 56
2.13.2文档 57
2.14更多的赋值语句 59
2.15.1 问题分析和算法设计 60
2.1 5编程示例:换算长度 60
2.15.2变量 61
2.15.3已命名常量 61
2.15.4主算法 61
2.15.5综合 62
2.16编程示例:货币单位换算 64
2.16.1 问题分析和算法设计 64
2.16.4主算法 65
2.16.2变量 65
2.16.3已命名常量 65
2.17快速回顾 68
2.18练习题 70
2.19编程练习 77
第3章对象和输入/输出 79
3.1对象和引用变量 79
3.2在程序中使用预定义的类和方法 82
3.3 String类 84
3.4.1利用对话框进行输入/输出 91
3.4输入/输出 91
3.4.2令牌化字符串 96
3.4.3格式化小数数字的输出 99
3.5文件输入/输出 101
3.5.1从文件输入(读取)数据 102
3.5.2将输出存储(写入)到文件 102
3.6编程示例:售电影票和向慈善机构捐赠 104
3.6.1 问题分析和算法设计 104
3.6.2变量 105
3.6.4主算法 106
3.6.3格式化输出 106
3.6.5完整的程序清单 107
3.7编程示例:学生分数 109
3.7.1 问题分析和算法设计 109
3.7.2变量 109
3.7.3主算法 110
3.8快速回顾 112
3.9练习题 113
3.10编程练习 115
第4章控制结构1 118
4.1控制结构 118
4.2关系运算符 119
4.3关系运算符和基本数据类型 120
4.4字符串比较 122
4.5逻辑(布尔)运算符和逻辑表达式 125
4.6优先顺序 126
4.6.1快速求值法 130
4.6.2 boolean数据类型和逻辑(布尔)表达式 131
4.7选择结构:if和if...else语句 131
4.7.1单选 132
4.7.2双项选择 134
4.7.3复合(Block of)语句 137
4.7.4多项选择:嵌套的if语句 138
4.7.5将if...else语句与if语句进行比较 141
4.7.6条件运算符(?:) 141
4.8 switch语句 142
4.9编程示例:有线电视公司的收费单 148
4.9.1 问题分析和算法设计 148
4.9.2变量 149
4.9.3已命名常量 149
4.9.4公式 149
4.9.5主算法 150
4.10快速回顾 153
4.11 练习题 154
4.12编程练习 159
第5章控制结构II 162
5.1 为什么需要重复执行语句 162
5.2 while循环(重复)结构 163
5.2.1 计数器控制的while循环 166
5.2.2标记控制的while循环 168
5.2.3 标志控制的while循环 173
5.2.4 EOF控制的while循环 174
5.3编程示例:经常账户余额 175
5.3.1 问题分析和算法设计 176
5.3.2变量和对象 176
5.3.3已命名常量 178
5.3.4主算法 179
5.4编程示例:斐波纳契数列 184
5.4.1 问题分析和流程设计 185
5.4.2变量 185
5.4.3主算法 185
5.5 for循环(重复)结构 188
5.6.1 问题分析和算法设计 193
5.6编程示例:分类数字 193
5.6.2变量 194
5.6.3主算法 194
5.7 do...while循环(重复)结构 197
5.8 break语句和continue语句 200
5.9嵌套控制结构 202
5.10快速回顾 205
5.11 练习题 206
5.12编程练习 217
6.1 图形用户界面组件 220
第6章 图形用户界面和面向对象的设计 220
6.1.1 创建窗口 224
6.1.2 JFrame 224
6.1.3获得对内容窗格的访问权 228
6.1.4JLabel 229
6.1.5 JTextField 232
6.1.6JButton命令按钮 235
6.2编程示例:温度换算程序 242
6.2.1 问题分析、GUI设计和算法设计 242
6.2.2变量、对象和命名常量 243
6.2.3完整的程序清单 247
6.3面向对象的设计 249
6.4实现类和操作 255
6.5快速回顾 257
6.6练习题 258
6.7编程练习 260
第7章用户定义的方法 262
7.1预定义方法 263
7.2用户定义的方法 267
7.2.1返回值的方法 267
7.2.2return语句 270
7.2.3最终程序 273
7.3编程示例:回文数 274
7.4程序的执行流程 277
7.5编程示例:最大数 278
7.6 void方法 280
7.7 将基本数据类型的变量作为参数 286
7.8将引用变量作为参数 287
7.8.1参数和内存分配 290
7.8.2谨慎使用作为参数的String类型的引用变量 290
7.8.3类StringBuffer 293
7.9类中标识符的作用域 300
7.10方法重载概述 302
7.11 编程示例:数据比较 303
7.11.1 问题分析和算法设计 303
7.11.2变量(方法main) 304
7.11.3方法calculateAverage 305
7.11.4局部变量(方法calculateAverage) 305
7.11.5方法PrintResult 306
7.11.6主算法:方法main 307
7.11.8方法PrintResult 312
7.11.7条形图 312
7.12快速回顾 314
7.13 练习题 315
7.14编程练习 324
第8章用户定义的类和ADT 330
8.1 类 330
8.1.1构造函数 333
8.1.2统一的建模语言图 334
8.1.3变量声明和对象实例化 334
8.1.4访问类成员 336
8.1.6赋值运算符和类 337
8.1.5对类执行的内置操作 337
8.1.8方法和类 339
8.1.9 Clock类的构造函数和一般方法的定义 339
8.1.7类的作用域 339
8.2复制构造函数 352
8.3 类和toString方法 352
8.4类的静态成员 353
8.5 Finalizer方法 356
8.6创建自己的包 356
8.7 this引用 360
8.9抽象数据类型 364
8.8内部类 364
8.10编程示例:糖果机 365
8.10.1 问题分析和算法设计 366
8.10.2实例变量 366
8.10.3方法 366
8.10.4实例变量 369
8.10.5方法 369
8.10.6主程序 373
8.10.7糖果机:创建一个GUI 377
8.10.8主程序 379
8.10.9事件处理 380
8.11 快速回顾 386
8.12练习题 387
8.13编程练习 392
第9章数组 395
9.1 为什么需要数组 395
9.2数组 396
9.2.1声明数组的其他方法 397
9.2.2访问数组元素 398
9.2.3 在程序执行时指定数组的大小 400
9.2.4数组和实例变量length 401
9.2.5一维数组的处理 401
9.2.6在声明数组时对数组进行初始化 405
9.2.7数组索引出界异常 405
9.2.8特别注意:赋值运算符、关系运算符和数组 405
9.2.9将数组作为方法的参数 408
9.3平行数组 412
9.4对象数组 412
9.5 二维数组 414
9.5.1访问数组元素 416
9.5.2声明时初始化二维数组 418
9.5.3二维数组的处理 419
9.5.4将二维数组作为参数传递给方法 424
9.6 多维数组 426
9.7编程示例:文本处理 427
9.7.1 问题分析和算法设计 428
9.7.2主算法 430
9.8快速回顾 432
9.9练习题 433
9.10编程练习 436
10.1.1 查找 441
第10章数组和字符串的应用 441
10.1 列表处理 441
10.1.2排序列表:选择排序 443
10.1.3对有序列表进行顺序查找 449
10.1.4二分查找法 451
10.2类Vector 455
10.3 编程示例:选举结果 461
10.4 再次学习类String 475
10.5编程示例:pig latin字符串 479
10.5.1 问题分析和算法设计 480
10.5.2主算法 482
10.6快速回顾 485
10.7 练习题 485
10.8编程练习 487
第11章继承和组合 489
11.1 继承 489
11.1.1在子类中使用超类的方法 491
11.1.2超类和子类的构造函数 496
11.1.3类的保护成员 503
11.2 类Obiect 507
11.3 Java流类 508
11.4超类和子类的对象 509
11.5抽象方法和类 514
11.6接口 517
11.7组合 518
11.8编程示例:成绩单 523
11.8.1 第1部分:学生成绩单(控制台显示) 523
11.8.2问题分析和算法设计 525
11.8.3主程序 539
11.8.4第Ⅱ部分:学生成绩单(GUI设计) 544
11.8.5主程序 550
11.9快速回顾 555
11.10练习题 556
11.11 编程练习 562
第12章处理异常和事件 565
12.1 Java异常的层次 565
12.2 Java的Exception类 568
12.3检查和非检查异常 570
12.4处理程序中的异常 571
12.4.1 try/catch/finally块 571
12.4.2 catch块的顺序 572
12.4.3 Exception类和instanceof运算符 576
12.4.4重新抛出和抛出异常 580
12.5 printStackTrace方法 584
12.6异常处理技术 586
12.6.1 终止程序 586
12.6.2修复错误并继续执行 586
12.6.3记录错误并继续执行 587
12.7创建自己的异常类 587
12.8事件处理 590
12.9编程示例:计算器 595
12.10快速回顾 602
12.11练习题 604
12.12编程练习 607
第13章高级GUI和图形 609
13.1 applet 612
13.2类Font 615
13.3类Color 618
13.4类Graphics 623
13.5其他GUI组件 633
13.5.1 JTextArea 633
13.5.2 JCheckBox 638
13.5.3 JRadioButton 644
13.5.4 JComboBox 650
13.5.5 JList 654
13.6布局管理器 660
13.6.1 FlowLayout 660
13.6.2 BorderLayout 663
13.7菜单 665
13.8键盘和鼠标事件 667
13.8.1 盘事件 668
13.8.2鼠标事件 670
13.9编程示例:Java Kiosk 677
13.10快速回顾 685
13.11练习题 685
13.12编程练习 687
第14章递归 690
14.1递归定义 690
14.1.1直接和间接递归 692
14.1.2无限递归 692
14.2使用递归解决问题 693
14.3递归或迭代哪一个更好 702
14.4编程示例:将一个数从十进制转化为二进制 703
14.5编程示例:Sierpinski Gasket图形 705
14.6快速回顾 709
14.7练习题 710
14.8编程练习 712
附录A Java保留字 717
附录B运算符优先级 718
附录C字符集 720
附录D程序包和用户定义的类 723
附录E Java类 733
附录F部分练习题的答案 789