C#面向对象程序设计(微课版)

C#面向对象程序设计(微课版)"

作者:张浩然、靳冲、江泽锋、丁允超、冷亚洪
ISBN:9787302550273
定价:¥56
字数:千字
页数:
出版时间:2020.04.01
开本:
版次:1-2
装帧:
出版社:清华大学出版社
简介

本书作为面向对象程序设计的教程,系统、全面地介绍了有关C#程序开发所涉及的知识。全书共分13章,内容包括C#和Visual C#开发环境,C#语法基础,面向对象程序设计概述,委托和事件,程序调试与异常处理,集合、索引器、泛型,LINQ技术,Windows应用程序开发,ADO.NET编程,文件操作,网络编程,多线程编程和一个“外星人入侵”的游戏综合实例。全书每章均包含大量的案例,将理论知识与实例紧密结合,达到了学以致用的目的。

本书紧紧围绕“理论知识+开发案例”的模式进行编写,在第13章中以一个完整的项目为主线,将面向对象的编程思想应用于实际项目开发中。本书注重基础,内容丰富,相关案例和项目代码十分完整,适合作为应用型本科及职业院校计算机、软件工程等专业的教材,也可供C#初学者参考阅读。

前言

自20世纪80年代广泛应用面向对象的程序设计方法以来,软件开发行业慢慢摆脱了“行业危机”,开始进入良性循环的发展阶段。长期以来,人们在肯定面向对象程序设计方法的同时,不断地进行改进、完善,使其成为一种科学化、人性化、规范化的软件开发方法。作为一名高等学校计算机及相关专业的本科学生来说,掌握面向对象的程序设计方法已经成为基本的专业要求。为此,我们编写了本书,希望能够对“面向对象程序设计”这门课程的教与学有一定的帮助。

本书根据“面向对象程序设计”课程的教学大纲要求,首先阐述面向对象程序设计方法的相关概念,然后选择具有典型特征的案例,让学生利用C#语言来实现案例要求从而掌握面向对象程序设计的基本方法,并且学会利用C#程序设计语言编写具有面向对象特征的程序代码,从中体会面向对象程序设计的精髓。本书具有以下特点。

(1) 本书由浅入深,结构完整,详略得当,易学易懂。

(2) 针对学习过程中容易混淆的编程知识,采取了对比分析的阐述方式,并通过案例效果对比加深理解。

(3) 为多种教学方法提供了素材,这些教学方法包括案例教学法、项目教学法、讲授法。

(4) 配备了大量的开发案例,并提供开源的源代码和示例数据库,为读者的学习提供了方便。案例描述步骤详细,图文并茂,易于理解和实践操作。

(5) 本书最后一章介绍了“外星人入侵”游戏的开发,从需求分析、系统设计到编码实现,过程描述详细、完整,将面向对象程序设计知识充分融入项目中,使读者能够更深刻地理解面向对象程序设计的相关知识。

(6) 本书有利于培养学生的实践能力,为面向工程教育认证的学生的毕业要求达成度、技能熟练度的培养体系的构建做了强有力的支撑。

本书的编者均为具有多年项目开发、教学和科研经验的高校教师,经过多年的知识积累、沉淀,将开发经验毫无保留地展现给读者。所有例题均为实用性较强的真实案例,不是简单、枯燥的知识罗列。每章末还提供了作业题、思考题和上机实践题,以便于读者进一步巩固所学知识,方便教师布置作业和安排上机实验。

本书共分为13章,各章主要内容如下。第1章主要对C#和.NET开发平台做了简单介绍,同时介绍了Visual Studio 2013开发环境和C#程序的基本结构。

第2章介绍了C#中的预定义数据类型和用户自定义的类型种类以及用法,然后讲解了C#中的运算符以及表达式的定义和用法,最后讲解了C#中程序的选择结构、循环结构及跳转结构的语法和使用。

第3章主要是对面向对象程序设计的基础知识进行了讲解。首先介绍了对象、类这些基本的概念,以及面向对象程序设计的三大基本原则;然后重点对类的定义、构造函数和方法进行了详细的讲解;又分别对封装、继承和多态进行讲解;最后讲解了接口的概念和使用。

第4章介绍了委托和事件的基本概念。委托是一种特殊的引用类型,它将方法作为特殊的对象进行封装、传递和调用。仅通过委托进行调用的方法可以定义为匿名方法。事件是类的特殊成员,它利用委托机制使对象对外界发生的情况做出响应。

第5章介绍了程序错误的分类,从宏观上分析了程序在编写过程中出现错误是难以避免的,然后详细介绍了解决程序错误的一些基本方法和技巧,最后讲解了异常的概念、解决异常的方法及自定义异常类的编写和使用。

第6章介绍了集合的相关概念和一些常用集合的使用,然后介绍了索引器的使用与属性的区别,最后详细介绍了泛型集合、泛型类、泛型方法、泛型接口的使用。

第7章主要介绍了LINQ的基础知识,重点介绍了LINQ查询表达式的常用操作。LINQ技术是C#中的一种非常实用的技术,通过使用LINQ技术,可以在很大程度上方便程序开发人员对各种数据的访问。

第8章主要对Windows应用程序开发的知识进行了详细的讲解,包括Windows窗体的使用、常用的Windows控件的使用。本章所讲解的内容在开发Windows应用程序时是最基础、最常用的知识,尤其是Windows窗体及Windows控件的使用,读者一定要熟练掌握。

第9章主要介绍了ADO.NET编程相关知识。ADO.NET中包括多个对象模型,本章详细介绍了Connection、Command、DataReader、DataAdapter、Parameter、DataSet、DataTable等对象的方法和属性。通过实现图书信息管理模块,介绍了简单三层架构的搭建,并介绍了如何将各个对象应用到模块的开发中。

第10章首先介绍了文件与流的基本概念;然后介绍了多种对话框的基本知识,并用简易写字板的案例加强读者对知识的理解;最后详细介绍了容易扩展的数据格式XML的创建、查询、删除、添加等方法。

第11章主要介绍了计算机网络的基础知识和一些常用的协议;然后着重分析讲解了网络编程中常用的内容;并使用这些类编写了简易聊天软件,以及发送和接收邮件的应用程序。

第12章首先对线程和多线程的概念进行了介绍,然后详细讲解了如何使用System.Threading命名空间编写多线程应用程序。应用程序中使用多线程要特别小心,多线程可以提高程序的执行效率,但是太多的线程会导致资源竞争和死锁,所以应提前做好规划。

第13章是“外星人入侵”游戏综合案例,是将控件的使用及面向对象的相关知识(包括类、对象、封装、继承、多态)综合应用到游戏实现过程中。通过本章的学习,读者可以从整体上进一步理解面向对象编程的概念,并加深对前面所学知识的理解和应用。

本书由重庆工程学院张浩然、靳冲、江泽锋、重庆城市管理职业学院丁允超和重庆工程学院冷亚洪编著。具体分工为: 第1章和第12章由丁允超编写,第2章、第5章、第6章、第10章、第11章由靳冲编写,第3章和第7章由江泽锋编写,第4章、第8章、第9章、第13章由张浩然编写。张浩然负责全书的框架设计和统稿工作。冷亚洪参与了本书的审阅、勘误、代码验证及部分内容的修改工作。

本书的编写工作得到了学院领导和同事的大力支持和帮助,在此一并表示感谢。

在本书的编写过程中参考了许多相关的文献资料,在此向这些文献的作者表示衷心的感谢!由于编者水平有限,书中难免有错误和不足之处,恳请专家和广大读者批评、指正。

编 著 者2020年2月

目录

第1章C#和Visual C#开发环境1

1.1C#语言简介1

1.1.1C#的发展史1

1.1.2C#的特点1

1.2.NET开发平台2

1.2.1.NET概述2

1.2.2.NET Framework的结构2

1.2.3.NET Framework的优点3

1.3Visual C#开发环境4

1.3.1标题栏5

1.3.2菜单栏5

1.3.3工具栏11

1.3.4工具箱11

1.3.5窗口12

1.3.6新建应用程序13

1.4C#程序的基本结构14

1.4.1注释16

1.4.2命名空间16

1.4.3类型及其成员16

1.4.4程序主方法17

1.4.5程序集17

1.5小结18

习题18

第2章C#语法基础19

2.1数据类型19

2.1.1简单类型20

2.1.2数组类型21

2.1.3字符串类型252.1.4结构类型和枚举类型26

2.1.5数据类型转换29

2.2运算符和表达式30

2.2.1简单算术运算符30

2.2.2自增和自减运算符31

2.2.3赋值运算符32

2.2.4关系运算符32

2.2.5逻辑运算符33

2.2.6移位运算符33

2.2.7typeof运算符34

2.2.8运算符优先级和结合性34

2.2.9运算符的重载34

2.3控制结构35

2.3.1选择结构35

2.3.2循环结构39

2.3.3跳转结构43

2.4小结44

习题44

第3章面向对象程序设计概述47

3.1面向对象的基本概念47

3.1.1对象47

3.1.2类47

3.1.3类与对象的关系48

3.1.4面向对象的特征48

3.2类的定义49

3.2.1类的声明和实例化50

3.2.2类的数据成员和属性50

3.2.3类的可访问性52

3.2.4值类型与引用类型54

3.3类的方法55

3.3.1方法的声明与调用55

3.3.2方法的参数传递56

3.3.3方法的重载61

3.4构造函数64

3.4.1构造函数的声明和调用64

3.4.2构造函数的重载66

3.4.3对象的生命周期和析构函数67

3.5封装的概念及意义68

3.5.1修饰符支持封装68

3.5.2使用属性封装70

3.6继承71

3.6.1基类和派生类71

3.6.2隐藏基类成员72

3.6.3base关键字74

3.7多态性74

3.7.1虚拟方法75

3.7.2抽象类和抽象方法76

3.7.3密封类和密封方法77

3.8接口78

3.8.1接口的定义78

3.8.2接口的实现79

3.8.3接口与多态80

3.9小结81

习题82

第4章委托和事件84

4.1委托84

4.1.1委托的概念84

4.1.2委托的声明、实例化与使用84

4.1.3多路广播与委托的组合87

4.2事件88

4.2.1事件声明88

4.2.2订阅事件90

4.2.3触发事件91

4.3小结91

习题92

第5章程序调试与异常处理93

5.1程序错误93

5.1.1程序错误分类93

5.1.2调试程序错误95

5.2程序的异常处理97

5.2.1异常的概念97

5.2.2异常类97

5.2.3trycatchfinally语句98

5.2.4throw语句与抛出异常99

5.3小结101

习题101

第6章集合、索引器、泛型103

6.1集合103

6.1.1ArraryList103

6.1.2哈希表105

6.1.3栈和队列106

6.2索引器108

6.2.1索引器的定义与使用108

6.2.2索引器与属性的比较110

6.3泛型110

6.3.1泛型集合110

6.3.2泛型类、泛型方法和泛型接口112

6.4小结116

习题116

第7章LINQ技术117

7.1什么是LINQ117

7.2LINQ提供程序118

7.3匿名类型118

7.4方法语法和查询语法120

7.5查询变量121

7.6查询表达式的结构121

7.6.1获取数据源122

7.6.2筛选122

7.6.3排序123

7.6.4分组123

7.6.5联结124

7.7小结125

习题126

第8章Windows应用程序开发127

8.1Windows窗体介绍127

8.1.1添加窗体127

8.1.2设置启动窗体127

8.1.3设置窗体属性128

8.1.4窗体常用方法130

8.1.5窗体常用事件131

8.2Windows控件的使用132

8.2.1Control类132

8.2.2常用控件134

8.3小结142

习题143

第9章ADO.NET编程144

9.1ADO.NET概述144

9.2ADO.NET对象模型144

9.2.1Connection对象144

9.2.2Command对象145

9.2.3DataReader对象146

9.2.4Parameter对象147

9.2.5DataAdapter对象148

9.2.6DataSet对象148

9.3数据访问类——SqlHelper类149

9.4图书信息管理模块的实现152

9.4.1需求描述152

9.4.2系统设计152

9.4.3编码的实现154

9.5小结173

习题173

第10章文件操作174

10.1文件的输入/输出174

10.1.1文件的输入/输出与流174

10.1.2读/写文本文件175

10.1.3读/写二进制文件177

10.1.4对象的序列化179

10.2文件操作控件182

10.2.1SaveFileDialog和OpenFileDialog控件182

10.2.2FolderBrowseDiolog、ColorDialog、FontDialog控件184

10.2.3应用实例——简易写字板184

10.3XML文档编程188

10.3.1XML概述189

10.3.2XML文档的创建189

10.3.3XML文档的查询193

10.3.4XML文档的编辑194

10.4小结196

习题196

第11章网络编程197

11.1计算机网络基础197

11.1.1网络协议介绍197

11.1.2套接字介绍198

11.2网络编程基础201

11.2.1常见类概述201

11.2.2System.Net.Sockets命名空间中相关类的使用204

11.2.3System.Net.Mail命名空间中相关类的使用212

11.3小结219

习题219

第12章多线程编程221

12.1线程概述221

12.1.1多线程工作方式221

12.1.2何时使用多线程222

12.2线程的基本操作223

12.2.1线程的创建与启动223

12.2.2线程的挂起与恢复224

12.2.3线程休眠225

12.2.4线程终止225

12.2.5线程的优先级227

12.3线程同步228

12.3.1lock关键字228

12.3.2线程监视器——Monitor类229

12.3.3子线程访问主线程的控件230

12.4线程池232

12.4.1线程池管理232

12.4.2ThreadPool类的几个关键方法234

12.4.3线程池使用限制234

12.5定时器234

12.6互斥对象——Mutex类235

12.7小结237

习题237

第13章综合实例——“外星人入侵”游戏238

13.1需求分析238

13.1.1游戏概述238

13.1.2功能描述238

13.2系统设计238

13.2.1开发环境238

13.2.2功能层次图239

13.2.3类设计239

13.2.4界面设计242

13.3编码实现243

13.3.1新建项目243

13.3.2添加类244

13.3.3添加用户控件254

13.3.4添加游戏主界面260

13.4小结269

思考269

参考文献270

作者简介

编辑推荐

本书根据“面向对象程序设计”课程的教学大纲要求,按照首先阐述面向对象程序设计方法的相关概念,然后选择具有典型特征的实例,并利用C#语言来实现书中案例,使学生能够掌握面向对象程序设计的基本方法,并且学会利用C#程序设计语言编写具有面向对象特征的程序代码,从中体会面向对象程序设计的精髓。

作者寄语

张浩然 软件工程师,项目经理,讲师。2005年毕业于重庆文理学院计算机科学与技术专业,重庆大学软件工程硕士,6 年软件企业工作和开发经验,曾任职于厦门未来逻辑科技有限公司、厦门亿力天龙科技有限公司、重庆金算盘 软件集团,曾参与多个大型的项目设计与开发工作。四年软件技术、四年软件工程专业教学经验,现任职于重庆工程学院软件学院,参编《软件工程》、《Asp.net Web程序设计》教材。公开发表论文8篇,获得软件著作权5项,实用新型专利2项。

靳冲,信息系统项目管理师,软件设计师,讲师。2013年毕业于荆楚理工学院计算机科学与技术专业,2016年毕业于重庆理工大学计算机技术专业,1年软件企业工作和开发经验,曾任职于深圳锐取信息技术有限公司,广东工业设计研究院,曾参与多个项目的设计与开发工作。两年软件工程专业教学经验,现任职与重庆工程学院软件学院。公开发表论文1篇,获得软件著作权2项。

江泽锋 软件工程师、系统架构师、IT经理,讲师。2004年毕业于重庆大学计算机软件与理论专业、工学硕士,10+ 年软件企业工作和开发经验,曾任职于上海宏骏科技重庆分公司、上海惠普重庆分公司、重庆博腾制药股份有限公司,曾参与多个大型

电子资料

www.luweidong.cn

下一个