第一部分:对象入门 1
第1章 初尝C# 3
1.1 C#上手指南 4
1.2 为什么用C# 4
1.3 C#语言基础 6
1.4 解析一个简单的C#程序 6
1.5 预定义类型 9
1.6 变量 10
1.7 字符串 12
1.8 大小写敏感 12
1.9 C#表达式 13
1.10 隐式类型转换和显式类型转换 16
1.11 循环和其他控制结构流程 18
1.12 跳出语句 26
1.13 代码块和变量作用范围 27
1.14 输出到屏幕 29
1.15 C#风格要素 31
1.16 小结 37
1.17 练习 37
第2章 抽象与建模 39
2.1 通过抽象进行简化 39
2.2 通过抽象来概括特征 40
2.3 抽象的重用 45
2.4 挑战 46
2.5 小结 47
2.6 练习 48
第3章 对象和类 51
3.1 什么是对象 51
3.2 状态/Attribute/数据 52
3.3 行为/操作/方法 53
3.4 类 55
3.5 用户定义类型和引用变量 58
3.6 近看对象实体化 59
3.7 作为attribute的对象 63
3.8 合成 64
3.9 面向对象编程语言的三要素 67
3.10 小结 67
3.11 练习 67
第4章 对象互操作 69
4.1 事件驱动对象协同 69
4.2 声明方法 71
4.3 方法调用和点符号 77
4.4 信息隐藏/可访问性 89
4.5 封装的威力 106
4.6 实体构造器 112
4.7 小结 115
4.8 练习 116
第5章 对象间关系 119
5.1 关联与链接 120
5.2 继承 126
5.3 再论面向对象编程语言三要素 147
5.4 小结 147
5.5 练习 147
第6章 对象群集 151
6.1 什么是群集 151
6.2 作为简单群集的数组 154
6.3 更复杂的群集类型 162
6.4 多个群集同时引用单个对象 166
6.5 创造自己的群集类型 167
6.6 作为方法返回类型的群集 171
6.7 超类型的群集 172
6.8 再论组合类 173
6.9 小结 176
6.10 练习 177
第7章 对象概念末论 179
7.1 什么是多态(Polymorphism) 180
7.2 面向对象编程语言三要素 187
7.3 抽象类 188
7.4 接口 195
7.5 静态特征 208
7.6 用具类 218
7.7 小结 222
7.8 练习 223
第二部分:对象建模 101 227
第8章 对象建模过程简述 229
8.1 对象建模目标概观 229
8.2 对象建模过程概述 233
8.4 练习 237
8.3 小结 237
第9章 通过用例划定需求 239
9.1 什么是用例 240
9.2 操作者 241
9.3 细说用例 245
9.4 搭配操作者和用例 246
9.5 做图还是不做图 247
9.6 小结 248
9.7 练习 248
第10章 对系统的静态/数据方面建模 249
10.1 确定合适的类 250
10.2 制作数据字典 262
10.3 决定类间关联 263
10.4 UML符号:对抽象模型的静态方面建模 268
10.5 对象图 280
10.6 关联“管道”和信息“流” 283
10.7 “混合与匹配”关系符号 287
10.8 关联类 289
10.9 “完成了的”学生注册选修系统类图 291
10.1 0元数据 298
10.1 1小结 299
10.1 2练习 300
第11章 对系统的动态/行为方面建模 301
11.1 行为如何影响状态 302
11.2 场景 307
11.3 时序图(SequenceDiagram) 310
11.4 使用时序图来决定方法 315
11.5 协作图 317
11.6 调整后的SRS类图 318
11.7 小结 319
11.8 练习 319
第12章 对建模的总结 321
12.1 测试你的模型 321
12.2 重新检查需求 322
12.3 重用模型:设计模式一席谈 324
12.4 小结 326
12.5 练习 327
第三部分:将UML“蓝图”转化为C#代码 329
第13章 窥秘C# 331
13.1 术语列表 332
13.2 搭建C#编程环境 333
13.3 编译和运行C#程序 334
13.4 命名空间 345
13.5 作为对象的字符串 350
13.6 C#异常处理 356
13.7 Object类 366
13.8 C#的群集类 373
13.9 再论变量初始化 391
13.1 0关于Main方法的进一步讨论 392
13.1 1开发命令行驱动的程序 394
13.1 2对象通过this关键字自我引用 399
13.1 3再访构造器 401
13.1 4更多关于C#和继承的知识 406
13.1 5更多关于方法的知识 414
13.1 6对象标识 418
13.1 7对象删除和垃圾收集 423
13.1 8“其他”种类的Attribute 424
13.2 0练习 426
13.1 9小结 426
第14章 将UML模型变成C#代码 429
14.1 如何充分利用本章和下一章 430
14.2 回顾SRS类图 430
14.3 调试技巧 473
14.4 小结 475
14.5 练习 476
第15章 完善我们的应用程序,第一部分:增加持久化特性 477
15.1 什么是持久化(persistence) 478
15.2 群集包装(封装群集;从ASCII文件中读数据) 488
15.3 CourseCatalog类 492
15.4 Faculty类 498
15.5 修补ScheduleOfClasses类 499
15.6 修改Course类 501
15.7 Student类(动态获得数据;保存对象状态) 502
15.8 重访SRS类 508
15.9 小结 515
15.10 练习 516
第16章 完善我们的应用程序,第二部分:添加图形化用户界面 517
16.1 C#GUIs:初级读本 518
16.2 第一阶段:为SRSGUI准备操作概念文档 524
16.3 第二阶段:创建我们的GUI的外观 531
16.4 第三阶段:通过事件处理添加功能 556
16.5 小结 589
16.6 练习 589
第17章 下一步 591
17.1 屡试不爽的C#学习方法 591
17.2 推荐阅读 593
17.3 请赐评论 594
附录A 如何使用本书做教材 597
A.1 推荐的教学手段 597
A.2 C#作为教学语言的适用性 598
A.3 最后一些建议 599
B.1 案例1:处方跟踪系统 601
附录B 其他案例研究 601
B.2 案例2:会议室预定系统 603
B.3 案例3:BlueSkies航班订座系统 605
附录C 安装配置基础的对象建模/C#开发环境 607
C.1 对象建模工具 607
C.2 NETFrameworkSoftwareDeveloper'sKit 608
C.3 让C#正常工作的“零碎”提示 609
C.4 使用在线.NETFramework文档 612
C.5 最后的话 612
附录D 下载和编译SRS源代码 615
附录E C#关键字 617
索引 623