前言
在计算机及相关专业课程中,面向对象程序设计课程是学生必修的核心课程。面向对象的程序设计思想从提出到现在,一直是程序开发的主流思想,是所有计算机软件开发人员必须掌握的关键技术。在计算机相关专业的课程设置中,多数高校以C语言作为学生学习的第一门高级语言,由于先入为主等原因,在学生后续的C++、C#、Java等面向对象程序设计的课程学习中,学生建立系统的面向对象的思想比较困难。
在C#面向对象程序设计课程的设计过程中,我们广泛收集教学资料,拜访多所大学,请教了多位著名老师;主要成员参加了企业的多项培训(例如北大青鸟、微软等),在教学中也采用了多种教学方案,试图帮助学生掌握面向对象的编程。本书初稿完成后,经过3年多的教学实践,跟踪学生学习效果,反复调整课程内容,经过多次课程内容的迭代,形成了自己独特的课程教学方案,编写了《面向对象程序设计教程(C#版)》一书。诺贝尔物理学奖得主,理查德·费曼说:“伟大的进展都源于承认无知,源于思想的自由。”我们在课程内容的取舍、教学内容的先后顺序,典型例题、习题的选取上,经过了痛苦的选择,如果没有思想的自由解放,是无法实现目前的课程方案,达到满意教学效果的。
我们知道,学生对每门课程最初几次上课的印象最深,因此应该把课程的重要内容安排在学期的最初几次课上来讲。基于这个现象,本书第1章类和对象,第2章封装,第3章继承,第4章多态,使读者尽早掌握用类的三大特性,完成面向对象第一阶段的学习。在第一阶段,读者建立起来类和对象的概念,掌握类的三大特性,理解面向对象的基本思想,这样之后的学习难度就降低了很多。第二阶段学习第5章程序的调试和异常处理,第6章接口和多态的实现,第7章静态类和密封类,第8章值类型和引用类型,第9章索引器,第10章泛型,第11章集合。第三阶段学习第12章Windows窗体应用程序,第13章文件操作,第14章委托和事件,第15章多线程编程。值得一提的是,本书中的例题采用完全的面向对象程序代码,使读者逐步习惯阅读面向对象的代码,形成条件反射,养成用面向对象的思维去分析和解决问题。
本课程的前导课程是C语言或其他高级语言。对于没有学习过任何高级语言的读者,学习本书也不会有障碍,因为本书把许多基础知识分散到各个章节中,而且在程序中通过应用来体现,这样更有利于理解。通过本书的学习,读者不但能学会面向对象程序设计的基本知识、设计思想和方法,还能很容易地过渡到其他面向对象程序设计语言的学习与使用上,只需了解该语言的语法,就可以非常轻松地掌握。
C#是一种简洁、类型安全的面向对象的语言,可用它来构建在.NET Framework上运行的各种安全、可靠的应用程序,常用于开发Windows客户端应用程序、ASP.NET网站、XMLWeb Services、分布式组件、客户端/服务器应用程序、数据库应用程序等。C#的生成过程比C和C++简单,比Java更灵活,C#非常适合作为第一门面向对象的语言来学习。
本书概念清晰,定义准确,例题实用,习题丰富,是一本真正简明易学的面向对象程序设计的教材。在面向对象的思想中,万事万物皆对象,当掌握了面向对象的思想后,可以用面向对象的思维去看待面向对象的世界,将面向对象的方法应用在生活、工作中,对分析问题、解决问题都有帮助,受益终生。
本书的主要作者在高校讲授面向对象程序设计课程十多年,参与了高校多次的教学改革,制订过计算机相关专业的教学计划和课程标准,并参加过多项实际应用项目的开发,有着丰富的教学和实践经验。
本书配套资源丰富,方便读者学习。对于授课视频、例题视频和部分源代码,在阅读时可以通过扫描二维码直接查看;对于教学课件和习题解答,在阅读时可以通过扫描二维码获得下载链接进行下载。
本书编写分工如下:刘瑞新编写第1、2、12章,张治斌编写第3、8章,朱立编写第4、5、6章,王莉编写第7、10章,张迎春编写第11、13章,崔淼编写第15章,第9、14章以及资料的收集整理、课件的制作由彭守旺、翟丽娟、刘克纯、刘春芝、李建彬、刘大学、缪丽丽、刘大莲、庄建新、彭春芳、孙洪玲、崔瑛瑛、韩建敏、庄恒、徐维维、徐云林、马春锋、骆秋容、王如雪、曹媚珠、陈文焕、刘有荣、李刚、孙明建、李索、彭泽源完成。本书由刘瑞新教授策划、统稿。编写过程中得到了许多教师的大力支持,他们提出许多宝贵意见使本书更加适合教学,在此一并感谢。
在编写本书的过程中,编者翻阅了大量的资料,限于篇幅不再一一列出,在此表示衷心感谢。
由于计算机技术发展迅速,书中难免有不足和疏漏之处,恳请广大读者批评指正。
编者