前言

自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月