《Beginning C# 2008 Objects概念到代码 中文版》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:薛莹著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2010
  • ISBN:9787302223474
  • 页数:572 页
图书介绍:本书主要介绍以下两个主题:对象的全面概念、以及如何构造C#应用程序以最有效地利用C#面向对象的特性。

第Ⅰ部分 对象ABC 3

第1章 初步体验C# 3

1.1 C#入门指南 4

1.2 使用C#的原因 4

1.2.1 实践出真知 4

1.2.2 C#是集成应用开发架构的一部分 4

1.2.3 C#是彻底的面向对象语言 5

1.2.4 C#是免费的语言 5

1.3 C#语言基础 6

1.4 详细分析一个简单的C#程序 6

1.4.1 “using System;”语句 7

1.4.2 注释 7

1.4.3 类声明/“包装器” 8

1.4.4 Main方法 8

1.5 预定义类型 9

1.6 变量 10

1.6.1 变量的命名约定 11

1.6.2 变量初始化和赋值 11

1.7 字符串 12

1.8 区分大小写 13

1.9 C#表达式 13

1.9.1 赋值语句 13

1.9.2 算术运算符 14

1.9.3 求值表达式和运算符优先级 16

1.9.4 逻辑运算符 16

1.10 隐式类型转换和显式类型转换 18

1.11 循环和其他流程控制结构 19

1.11.1 if语句 19

1.11.2 switch语句 22

1.11.3 for语句 25

1.11.4 while语句 28

1.11.5 do语句 29

1.12 跳出语句 29

1.13 代码块和变量作用域 31

1.14 输出到屏幕 32

1.14.1 Write和WriteLine的对比 34

1.14.2 转义序列 35

1.15 C#样式的要素 36

1.15.1 适当地使用缩进 36

1.15.2 明智地使用注释 39

1.15.3 大括号的放置 40

1.15.4 自说明的变量名 42

1.16 本章小结 42

1.17 练习 43

第2章 抽象和建模 45

2.1 通过抽象进行简化 45

2.2 通过抽象进行概括 46

2.2.1 将抽象模型组织为分类层次结构 47

2.2.2 作为软件开发基础的抽象 50

2.3 抽象的重用 51

2.4 固有的挑战 51

2.5 本章小结 53

2.6 练习 54

第3章 对象和类 55

3.1 对象的概念 55

3.2 状态/字段/数据 56

3.3 行为/操作/方法 57

3.4 类 58

3.4.1 关于命名约定的说明 59

3.4.2 实例化 59

3.5 用户定义类型和引用变量 61

3.6 实例化对象:深入研究 62

3.7 作为字段的对象 65

3.8 关联 66

3.9 面向对象编程语言的3个特性 68

3.10 本章小结 69

3.11 练习 69

第4章 对象交互 71

4.1 事件驱动对象协作 71

4.2 声明方法 72

4.2.1 方法头 73

4.2.2 向方法传递参数 73

4.2.3 方法返回类型 74

4.2.4 方法体 75

4.2.5 方法实现业务规则 76

4.2.6 return语句 76

4.2.7 命名建议 78

4.3 方法调用和点记号法 79

4.3.1 实参与形参 79

4.3.2 作为方法调用上下文的对象 80

4.3.3 再论C#表达式 82

4.3.4 获取方法调用的返回值 82

4.3.5 方法签名 83

4.3.6 对象通过方法交互 84

4.3.7 通过点记号法访问字段 85

4.3.8 委托 86

4.3.9 访问对象 87

4.3.10 作为客户和服务提供者的对象 89

4.4 信息隐藏/可访问性 90

4.4.1 可访问性的类型 91

4.4.2 在类方法内部访问类的成员 95

4.4.3 再论Camel命名法和Pascal命名法 96

4.4.4 再论方法头 97

4.4.5 从客户代码访问私有成员 97

4.4.6 字段值的持久性 104

4.4.7 公有/私有规则的例外 104

4.5 封装的强大功能 107

4.5.1 防止对封装数据未经授权的访问 107

4.5.2 帮助确保数据完整性 108

4.5.3 当私有成员更改时限制连锁反应 109

4.5.4 在类的自身方法中使用存取器 112

4.6 构造函数 114

4.6.1 默认构造函数 114

4.6.2 编写自己的构造函数 115

4.6.3 向构造函数传递参数 116

4.7 本章小结 118

4.8 练习 118

第5章 对象间的关系 121

5.1 关联和链接 121

5.1.1 多样性 123

5.1.2 聚集 125

5.1.3 继承 126

5.1.4 继承的优点 133

5.1.5 继承的缺点 133

5.1.6 类的层次结构 134

5.1.7 继承是否真是一种关系 135

5.1.8 避免“连锁反应” 136

5.1.9 派生类的规则:可为 136

5.1.10 派生类的规则:不可为 140

5.1.11 重载 141

5.2 略谈多重继承 144

5.3 回顾面向对象编程语言的3个显著特点 147

5.4 本章小结 147

5.5 练习 148

第6章 对象集合 151

6.1 集合的定义 151

6.1.1 在初次使用集合之前必须对其进行实例化 152

6.1.2 通过类定义集合 154

6.1.3 封装OO集合 154

6.2 作为简单集合的数组 155

6.2.1 声明和实例化数组 155

6.2.2 访问单个数组元素 155

6.2.3 初始化数组内容 156

6.2.4 操作对象数组 157

6.2.5 其他数组考虑事项 159

6.2.6 多维数组 160

6.3 更复杂的集合类型 162

6.3.1 有序列表 163

6.3.2 组 164

6.3.3 字典 165

6.3.4 泛型集合 166

6.3.5 多个集合同时引用同一个对象 167

6.4 作为方法返回类型的集合 168

6.5 超类型的集合 170

6.6 再论组合类 171

6.6.1 courseLoad 171

6.6.2 transcript,方法一 172

6.6.3 transcript,方法二 173

6.6.4 完整的Student数据结构 174

6.7 本章小结 174

6.8 练习 175

第7章 多态和最后一些对象概念 177

7.1 多态的定义 177

7.2 OOPL的3种与众不同的功能 184

7.3 抽象类 185

7.3.1 抽象类和实例化 188

7.3.2 重写抽象方法 189

7.3.3 打破抽象的咒语 190

7.4 接口 192

7.4.1 实现接口 193

7.4.2 “是一个”关系的另一种形式 195

7.4.3 抽象类与接口的对比 195

7.4.4 实现多个接口 197

7.4.5 接口和实例化 200

7.4.6 接口的重要性 200

7.5 静态成员 203

7.5.1 静态字段 203

7.5.2 静态属性 207

7.5.3 静态方法 208

7.5.4 静态方法和属性的限制 210

7.5.5 C#的特有术语 212

7.6 实用程序类 212

7.6.1 用户定义的实用程序类 213

7.6.2 常量 215

7.6.3 只读字段 217

7.7 本章小结 217

7.8 练习 218

第Ⅱ部分 对象建模 101

第8章 对象建模过程简述 223

8.1 对象建模的目标 223

8.2 对象建模过程概述 226

8.2.1 关于对象建模软件工具的思考 227

8.2.2 提醒 229

8.3 本章小结 229

8.4 练习 229

第9章 通过用例规范化需求 231

9.1 用例的概念 231

9.1.1 功能需求和技术需求 232

9.1.2 让用户参与 232

9.2 参与者 233

9.2.1 确定参与者并定义其角色 233

9.2.2 为系统和参与者绘制用例图 234

9.3 指定用例 236

9.4 匹配参与者和用例 238

9.5 是否绘制用例图 238

9.6 本章小结 239

9.7 练习 240

第10章 对系统的静态/数据方面进行建模 241

10.1 确定合适的类 242

10.1.1 名词短语分析 242

10.1.2 回顾用例 250

10.2 生成数据字典 251

10.3 确定类间关联 252

10.4 确定字段 255

10.5 UML符号:对抽象模型的静态方面进行建模 256

10.5.1 类、字段和操作 256

10.5.2 类问关系 257

10.5.3 说明多样性 261

10.6 对象图 264

10.7 信息“流”过关联“管道” 266

10.8 “混合和匹配”关系符号 270

10.9 关联类 272

10.10 完成后的SRS类图 274

10.11 继承还是关联 278

10.12 本章小结 279

10.13 练习 280

第11章 对系统的动态/行为方面进行建模 281

11.1 行为影响状态的方式 281

11.2 场景 286

11.2.1 场景1:“注册课程”用例 287

11.2.2 场景2:“注册课程”用例 288

11.3 时序图 289

11.3.1 确定场景1的对象和外部参与者 289

11.3.2 准备时序图 290

11.4 使用时序图确定方法 293

11.5 协作图 295

11.6 修改后的SRS类图 296

11.7 本章小结 297

11.8 练习 297

第12章 建模总结 299

12.1 测试模型 299

12.2 回顾需求 300

12.3 重用模型:设计模式 302

12.4 本章小结 304

12.5 练习 304

第Ⅲ部分 将UML“蓝图”转换为C#代码 307

第13章 深入学习C# 307

13.1 名称空间 308

13.1.1 程序员自定义的名称空间 311

13.1.2 全局名称空间 313

13.2 作为对象的字符串 314

13.2.1 string别名 314

13.2.2 创建String实例 315

13.2.3 @字符 316

13.2.4 特殊的string操作符 316

13.2.5 String属性 317

13.2.6 String方法 317

13.3 Object类 319

13.3.1 Equals方法 320

13.3.2 ToString方法 323

13.4 使用this进行对象的自身引用 325

13.5 C#集合类 326

13.5.1 再论数组 327

13.5.2 List类 329

13.5.3 Dictionary类 333

13.5.4 使用foreach循环迭代访问集合 335

13.6 再论字段 337

13.6.1 再论变量初始化 337

13.6.2 隐式输入的局部变量 338

13.7 再论Main方法 339

13.7.1 Main方法的几种形式 339

13.7.2 静态Main方法 340

13.8 再论输出到屏幕 341

13.9 再论构造函数 342

13.9.1 重载构造函数 343

13.9.2 替换默认的无参数构造函数 343

13.9.3 在类中重用构造函数代码 346

13.10 更多关于继承和C#的知识 347

13.10.1 继承组件的可访问性 348

13.10.2 重用基类行为:base关键字 350

13.10.3 继承和构造函数 352

13.10.4 base()的隐式调用 354

13.10.5 对象初始化器 357

13.11 再论方法 358

13.11.1 消息链 358

13.11.2 方法隐藏 360

13.12 再论属性 362

13.12.1 非对称的可访问性 362

13.12.2 自动实现的属性 363

13.12.3 回顾重写和抽象类 365

13.13 对象标识 365

13.13.1 派生类的对象也是基类的对象 366

13.13.2 确定对象所属的类 368

13.14 对象删除和垃圾回收 370

13.15 属性 371

13.16 本章小结 372

13.17 练习 373

第14章 将UML模型转换成C#代码 375

14.1 充分利用本章和后面的章节 375

14.2 开发命令行驱动的应用程序 376

14.2.1 读取命令行参数 376

14.2.2 接受键盘输入 377

14.3 回顾SRS类图 379

14.3.1 SRS的开发计划 381

14.3.2 Person类(指定抽象类) 382

14.3.3 Student类(通过继承重用,扩展抽象类,委托) 385

14.3.4 Professor类(双向关系) 391

14.3.5 Course类(反身和单向关系) 394

14.3.6 Section类(表示关联类和公有常量字段) 397

14.3.7 再论委托 405

14.3.8 ScheduleOfClasses类 409

14.3.9 TranscriptEntry关联类(静态方法) 411

14.3.10 SRS驱动程序 416

14.3.11 编译SRS程序 422

14.4 本章小结 427

14.5 练习 427

第15章 完善应用程序Ⅰ:增加文件持久化特性&. 429

15.1 持久化(Persistence)的概念 430

15.2 C#异常处理 431

15.2.1 异常处理机制 432

15.2.2 Exception类的层次结构 436

15.2.3 catch子句的顺序匹配 436

15.2.4 catch代码块的正确顺序 437

15.2.5 引用抛出的Exception对象 438

15.2.6 用户自定义异常 438

15.2.7 编译器强制的异常处理 441

15.3 从文件中读取数据或向文件写入数据 442

15.3.1 FileStream类 442

15.3.2 从文件中读取数据 442

15.3.3 向文件写入数据 445

15.3.4 填充主要的SRS集合 447

15.3.5 持久化Student数据 449

15.3.6 不持久化其他对象类型的原因 450

15.4 SRS类的通用I/O方法 450

15.5 CourseCatalog类 451

15.5.1 构造函数 451

15.5.2 Display方法 452

15.5.3 AddCourse方法 452

15.5.4 FindCourse方法 452

15.5.5 ReadCourseCatalogData方法 453

15.5.6 ReadPrerequisitesData方法 455

15.5.7 添加Main方法 457

15.6 更改ScheduleOfClasses类 459

15.6.1 更改构造函数 459

15.6.2 FindSection方法 460

15.6.3 ReadScheduleData方法 460

15.6.4 测试修改后的ScheduleOfClasses类 462

15.7 Faculty类 464

15.7.1 FindProfessor方法 464

15.7.2 ReadAssignmentData方法 464

15.7.3 添加Main方法 465

15.8 修改Course类 467

15.9 Student类(动态数据检索;持久化对象状态) 468

15.9.1 更改Student类的构造函数 469

15.9.2 ReadStudentData方法 469

15.9.3 持久化Student对象的状态 471

15.10 二进制I/O 472

15.11 回顾SRS类 472

15.12 本章小结 480

15.13 练习 481

第16章 完善应用程序Ⅱ:添加图形用户界面&. 483

16.1 C#GUI:入门 484

16.1.1 容器 484

16.1.2 事件驱动的GUI 485

16.1.3 System.Windows.Forms和System.Drawing名称空间 485

16.1.4 从视图中分离模型 486

16.1.5 学习路线 489

16.2 第一阶段:为SRS GUI准备操作概念文档 489

16.3 第二阶段:创建GUI的外观 496

16.3.1 Form类 497

16.3.2 GUI的应用程序体系结构 501

16.3.3 Label类 504

16.3.4 TextBox类 509

16.3.5 ListBox类 511

16.3.6 Button类 514

16.3.7 创建模态消息对话框 517

16.3.8 创建口令对话框 518

16.3.9 视图已完成 521

16.4 第三阶段:通过事件处理添加功能 521

16.4.1 C#事件模型 521

16.4.2 使用委托进行GUI事件处理 525

16.4.3 将事件处理添加到SRS GUI 531

16.5 本章小结 551

16.6 练习 551

第17章 下一步 553

17.1 有效学习C#的可靠方法 553

17.2 推荐读物 554

17.3 请赐评论 555

附录A 安装.NET和编译C#程序 557

附录B 下载和编译SRS源代码 571