第1章 概述 1
1.1 技术背景 1
1.1.1 C++的技术背景 1
目录 1
1.1.2 Java的技术背景 2
1.1.3 C#的技术背景 2
1.2 语言特性 3
1.2.1 C++的语言特性 3
1.2.2 Java的语言特性 4
1.2.3 C#的语言特性 5
1.3 面向对象方法 8
1.5 小结 10
1.4 面向对象程序设计 10
第2章 数据类型和变量 11
2.1 C++的数据类型和变量 11
2.1.1 基本类型 11
2.1.2 隐式类型转换 12
2.1.3 派生类型 12
2.1.4 void类型 13
2.1.5 指针 13
2.1.6 数组 14
2.1.7 结构 14
2.1.8 联合 16
2.1.10 存储类 17
2.1.9 引用 17
2.2 Java的数据类型和变量 19
2.2.1 基本类型 19
2.2.2 文字量 19
2.2.3 变量 21
2.2.4 空白 22
2.2.5 注释 22
2.2.6 创建和删除对象 23
2.3 C#的数据类型和变量 23
2.3.1 值类型 23
2.3.2 引用类型 29
2.3.3 入盒和出盒转换 32
2.3.4 变量 33
2.3.5 类型转换 36
2.4 比较与分析 36
2.5 小结 37
第3章 操作符和表达式 38
3.1 C++的操作符和表达式 38
3.1.1 操作符的优先级 38
3.1.2 标准转换规则 39
3.1.3 操作符语义 39
3.1.4 表达式 47
3.2 Java的操作符和表达式 50
3.2.1 运算符 50
3.2.2 类型转换 54
3.3.1 操作符 57
3.3 C#的操作符和表达式 57
3.3.2 逻辑操作符和逻辑表达式 58
3.3.3 条件操作和条件表达式 59
3.3.4 赋值操作符和赋值表达式 59
3.3.5 算术运算符和算术表达式 60
3.3.6 关系操作符和关系表达式 62
3.4 比较与分析 64
3.5 小结 64
第4章 语句 65
4.1 C++的语句 65
4.1.1 条件语句 65
4.1.2 循环语句 67
4.1.3 跳转语句 68
4.2 Java的语句 69
4.2.1 语句和块 69
4.2.2 条件语句 70
4.2.3 循环语句 72
4.2.4 跳转语句 73
4.3 C#的语句 75
4.3.1 声明语句 75
4.3.2 选择语句 75
4.3.3 循环语句 77
4.3.4 跳转语句 82
4.3.5 labled语句 84
4.4 比较与分析 85
4.3.6 lock语句 85
4.5 小结 86
第5章 数组 87
5.1 C++的数组 87
5.1.1 数组的声明 87
5.1.2 数组的初始化 88
5.1.3 数组的访问 89
5.2 Java的数组 89
5.2.1 Java的数组 89
5.2.2 Java的字符串 91
5.3 C#数组 92
5.4 比较与分析 96
5.5 小结 96
6.1.1 定义结构类型变量 97
第6章 结构 97
6.1 C++的结构 97
6.1.2 结构成员的访问 99
6.2 C#的结构 99
6.3 比较与分析 103
6.4 小结 103
第7章 类和对象 104
7.1 C++的类和对象 104
7.1.1 类的声明 104
7.1.2 类的成员 104
7.1.3 类的友元 107
7.1.4 多态性和虚函数 108
7.1.5 继承和派生类 112
7.1.6 运算符重载 116
7.1.7 构造函数和析构函数 124
7.2 Java的类和对象 130
7.2.1 类的声明 131
7.2.2 方法 131
7.2.3 对象 134
7.2.4 继承 136
7.3 C#的类和对象 137
7.3.1 类的声明 137
7.3.2 类的成员 138
7.3.3 域 139
7.3.4 方法 143
7.3.5 性质 150
7.3.6 事件 155
7.3.7 索引 158
7.3.8 操作符重载 162
7.3.9 构造和析构函数 164
7.3.10 抽象类和非抽象类 165
7.4 比较与分析 167
7.5 小结 168
第8章 接口 169
8.1 Java的接口 169
8.1.1 接口的声明 169
8.1.2 接口的成员 171
8.1.3 接口的实现 172
8.1.4 接口的使用 174
8.2.1 接口的声明 177
8.2 C3的接口 177
8.2.2 接口的成员 178
8.2.3 接口的实现 181
8.2.4 抽象类与接口 191
8.3 比较与分析 191
8.4 小结 192
第9章 异常 193
9.1 C++的异常 193
9.1.1 基本概念 193
9.1.2 栈框架调整 195
9.1.3 异常接口规范说明 197
9.2 Java的异常 198
9.2.1 异常类型的创建 198
9.2.2 异常语句 199
9.2.3 异常的抛出 202
9.2.4 异常的类型 203
9.2.5 创建自己的异常 205
9.2.6 Java的错误类 207
9.3 C#的异常 207
9.3.1 异常处理语句 207
9.3.2 异常的抛出 210
9.4 比较与分析 212
9.5 小结 213
第10章 包和空间 214
10.1 Java的包与空间 214
10.2.1 名字空间的声明 216
10.2 C#的包与空间 216
10.2.2 成员与类型声明 217
10.2.3 指示符 217
10.2.4 程序示例 221
10.3 比较与分析 222
10.4 小结 222
第11章 平台无关性 223
11.1 Java的平台无关性 223
11.2 C#的平台无关性 224
11.2.1 公用语言运行环境 224
11.2.2 虚拟对象系统 225
11.4 小结 227
11.3 比较与分析 227
第12章 线程 228
12.1 Java的线程 228
12.1.1 简单线程 228
12.1.2 多线程 233
12.1.3 同步化线程 236
12.2 C#的线程 237
12.3 比较与分析 239
12.4 小结 239
第13章 安全机制 240
13.1 Java的安全机制 240
13.2 C#的安全机制 241
13.4 小结 242
13.3 比较与分析 242
第14章 文件操作 243
14.1 C++的流和文件 243
14.1.1 预定义的提取和插入操作 243
14.1.2 创建文件流 244
14.2 Java的流和文件 248
14.2.1 文件和流 248
14.2.2 顺序访问文件 250
14.2.3 随机文件 257
14.3 C#的文件操作 259
14.3.1 .NET框架结构提供的I/O方式 260
14.3.2 文件存储管理 261
14.3.3 读写文件 265
14.3.4 异步文件操作 269
14.4 比较与分析 274
14.5 小结 275
第15章 应用实例 276
15.1 C++应用实例 276
15.1.1 拼写检查程序的设计说明 276
15.1.2 拼写检查程序的高层设计 276
15.1.3 拼写检查程序的低层设计 278
15.1.4 拼写检查程序的实现 279
15.2 Java应用实例 282
15.3 C#应用实例 284
15.4 C++、Java和C#的比较与分析 286
15.5 小结 286