新書推薦:
《
妈妈的情绪,决定孩子的未来
》
售價:HK$
43.7
《
推拿纲目
》
售價:HK$
414.0
《
精致考古--山东大学实验室考古项目论文集(一)
》
售價:HK$
250.7
《
从天下到世界——国际法与晚清中国的主权意识
》
售價:HK$
78.2
《
血色帝国:近代英国社会与美洲移民
》
售價:HK$
59.8
《
海外中国研究·王羲之:六朝贵族的世界(艺术系列)
》
售價:HK$
182.9
《
唐宋绘画史 全彩插图版
》
售價:HK$
101.2
《
“御容”与真相:近代中国视觉文化转型(1840-1920)
》
售價:HK$
113.9
|
編輯推薦: |
面向对象程序设计范式具有封装、继承、多态等特点,能显著提高程序的可重用性和可扩展性,是现代开发大型应用软件的主要技术。掌握面向对象软件开发方法,可大幅度提高复杂软件系统的生产率和质量。本书用C#语言和.NET框架技术描述并介绍了面向对象程序设计的核心概念、基本原理、基本技术和方法,内容涉及变量、数据类型、运算符、程序流程控制等基础程序设计,类、对象、封装、继承、多态、接口等面向对象程序设计,数值、文字、集合、泛型、委托、事件、控件、图形、文件、数据库等实用化程序设计,重点培养读者用面向对象程序设计范式解决实际问题的能力。
《面向对象程序设计(C#)》共分9章。第1章介绍面向对象技术的由来、地位及其重要性。第2章从计算机的角度介绍程序设计基础,涉及变量机制和过程式程序设计思想。第3章从人的角度介绍高端程序设计,涉及分类机制和面向对象程序设计思想,重点解析抽象、封装、继承、多态、接口等概念及其实现机制。第4章对比分析过程式、面向对象、面向接口、组件化等程序设计范式的应用,体验利用面向对象思想进行程序设计所带来的好处。从第5章开始,按软件分层体系结构,介绍用户界面层、业务逻辑层、数据访问层
|
內容簡介: |
面向对象程序设计范式具有封装、继承、多态等特点,能显著提高程序的可重用性和可扩展性,是现代开发大型应用软件的主要技术。掌握面向对象软件开发方法,可大幅度提高复杂软件系统的生产率和质量。本书用C#语言和.NET框架技术描述并介绍了面向对象程序设计的核心概念、基本原理、基本技术和方法,内容涉及变量、数据类型、运算符、程序流程控制等基础程序设计,类、对象、封装、继承、多态、接口等面向对象程序设计,数值、文字、集合、泛型、委托、事件、控件、图形、文件、数据库等实用化程序设计,重点培养读者用面向对象程序设计范式解决实际问题的能力。 《面向对象程序设计(C#)》共分9章。第1章介绍面向对象技术的由来、地位及其重要性。第2章从计算机的角度介绍程序设计基础,涉及变量机制和过程式程序设计思想。第3章从人的角度介绍高端程序设计,涉及分类机制和面向对象程序设计思想,重点解析抽象、封装、继承、多态、接口等概念及其实现机制。第4章对比分析过程式、面向对象、面向接口、组件化等程序设计范式的应用,体验利用面向对象思想进行程序设计所带来的好处。从第5章开始,按软件分层体系结构,介绍用户界面层、业务逻辑层、数据访问层的实现技术。其中,第5章涉及业务逻辑层技术,介绍科学计算、文字处理、时间、事件等常见数据结构类的使用。第6章涉及用户界面层技术,介绍各种控件类的使用。第7章涉及数据访问层技术,介绍文件和数据库类的使用。第8章涉及数据的可视化技术,介绍图形、图像、动画等多媒体类的使用。第9章基于企业信息化目标,用一个管理信息系统原型的实现过程介绍面向对象技术的综合运用。 《面向对象程序设计(C#)》思路新颖、图文并茂,适用于计算机类专业包括但不限于计算机科学与技术、软件工程、网络工程、信息安全、物联网工程等的面向对象程序设计、桌面应用软件开发等课程教学,也可供从事软件开发的科研人员使用。
|
目錄:
|
目 录
第1章 概述 1
1.1 面向对象探源 1
1.1.1 关于计算 1
1.1.2 主机计算 2
1.1.3 网络分布计算 3
1.1.4 组件技术 4
1.1.5 面向对象技术 5
1.2 .NET框架 7
1.2.1 微软技术的发展 7
1.2.2 .NET规范及其实现 8
1.3 C#程序设计语言 10
1.3.1 C#语言的特点 10
1.3.2 Hello, World 10
1.4 Visual Studio集成开发环境 12
1.4.1 启动集成开发环境 12
1.4.2 解决方案与项目类型 13
1.4.3 用控制台应用程序项目
实现HelloWorld 14
1.4.4 用Windows窗体应用程序
项目实现HelloWorld 16
习题1 19
第2章 程序设计基础 20
2.1 程序设计与编程 20
2.1.1 计算机的本质 20
2.1.2 程序的本质 21
2.1.3 程序设计 22
2.1.4 程序设计语言 24
2.2 数据存储 25
2.2.1 变量与常量 26
2.2.2 数据类型 27
2.2.3 数据类型的跨语言特性 28
2.3 数据运算与运算过程 29
2.3.1 数据运算类型 30
2.3.2 算法的基本结构 34
2.3.3 条件语句 35
2.3.4 迭代语句 37
2.3.5 跳转语句 39
2.4 数据与代码的组织 40
2.4.1 同类型数据的组织 40
2.4.2 不同数据类型的聚合 41
2.4.3 程序代码的组织 41
习题2 44
第3章 面向对象基础 45
3.1 对象与类 45
3.1.1 分类思想 45
3.1.2 类和对象释义 46
3.2 C#类与对象 47
3.2.1 模拟王婆卖瓜 47
3.2.2 类的定义及其封装性 50
3.2.3 对象的创建和使用 51
3.2.4 方法Method 52
3.2.5 参数Parameter 52
3.2.6 参数传递模式 53
3.2.7 属性Property 55
3.2.8 构造方法与析构方法
Constructor & Destructor 56
3.2.9 运算符重载 58
3.2.10 索引器 60
3.3 类的继承与多态 61
3.3.1 类之间的继承关系
Inheritance 62
3.3.2 类的多态性Polymorphism 62
3.4 抽象类与接口 67
3.4.1 抽象类 67
3.4.2 密封类 68
3.4.3 接口Interface 69
习题3 71
第4章 程序设计范式 72
4.1 程序设计范式的概念 72
4.1.1 从面向对象说起 72
4.1.2 范式Paradigm 73
4.1.3 语言之争 74
4.2 程序设计范式的应用 77
4.2.1 无范式方案 78
4.2.2 过程范式方案 78
4.2.3 面向对象范式方案 79
4.2.4 面向接口进行程序设计 81
4.3 组件导向式程序设计 83
4.3.1 过程式方案 83
4.3.2 面向对象式方案 83
4.3.3 组件导向式方案 84
4.4 反射机制* 85
4.4.1 反射探源 85
4.4.2 组件探秘 86
4.5 装箱和拆箱* 87
4.5.1 计算机内存布局 87
4.5.2 值类型与引用类型之间的
转换 88
习题4 89
第5章 实用化程序设计 90
5.1 程序设计环境 90
5.1.1 .NET框架环境 90
5.1.2 编译过程 91
5.1.3 FCL类库 93
5.2 .NET框架中的常用类 96
5.2.1 科学计算 96
5.2.2 文字处理 97
5.2.3 时间处理 100
5.2.4 随机数生成 100
5.3 数据结构类 101
5.3.1 泛型 101
5.3.2 集合类及其遍历 102
5.3.3 集合类的应用 104
5.4 事件驱动 106
5.4.1 委托 107
5.4.2 事件模型 108
5.4.3 专用委托和事件类 110
5.5 语言集成查询 111
5.5.1 LINQ简介 111
5.5.2 Lambda表达式 113
5.5.3 LINQ的使用 115
5.6 程序的容错能力 116
5.6.1 异常处理 116
5.6.2 输入数据的容错 117
习题5 118
第6章 可视化程序设计 119
6.1 工具箱的使用 119
6.1.1 成本计算程序的界面改造 119
6.1.2 控件属性的编辑 121
6.1.3 控件事件处理代码框架的
生成 122
6.1.4 自动生成的窗体应用程序
代码框架结构 123
6.1.5 编写程序代码 124
6.2 我的百宝箱 126
6.2.1 软件需求 126
6.2.2 创建项目并调整主窗体
属性 127
6.2.3 菜单和工具栏控件的
使用 128
6.2.4 实现业务窗体界面 130
6.2.5 实现应用程序的退出功能 132
6.3 神秘的飞溅屏 133
6.3.1 准备工作 134
6.3.2 画面淡入 134
6.3.3 把握进度 136
6.4 业务窗口 137
6.4.1 新书到了 137
6.4.2 学会选择 140
习题6 143
第7章 数据存储 144
7.1 文件概念和文件类 144
7.1.1 文件释义 144
7.1.2 文件操作流程 145
7.1.3 .NET框架的文件类 147
7.1.4 文件与目录操作 149
7.1.5 文件的读写操作 151
7.1.6 数据的流动 152
7.2 我的百宝箱中的文件处理 153
7.2.1 文件的打开和保存 154
7.2.2 文件的加密与解密 155
7.2.3 自动调整文本显示控件的
大小 159
7.3 数据库和数据库设计 160
7.3.1 数据库概念 160
7.3.2 数据库的设计 162
7.3.3 数据库的创建 163
7.3.4 ADO.NET家族一览 166
7.4 我的百宝箱中的数据库处理 168
7.4.1 书籍信息的保存 168
7.4.2 动态构造出版社下拉列表 171
7.4.3 图书维护 173
7.4.4 图像数据的存取操作 179
习题7 181
第8章 图形绘制技术 182
8.1 图形处理基础 182
8.1.1 多媒体与用户体验 182
8.1.2 Windows窗体的那点事 182
8.1.3 GDI的坐标系 183
8.2 工欲善其事,必先利其器 184
8.2.1 宣纸Graphics 184
8.2.2 画笔、颜料和刷子 185
8.2.3 基本画法 186
8.3 图形类的应用 187
8.3.1 绘制水池形状 187
8.3.2 降龙十八掌 189
习题8 191
第9章 综合应用 192
9.1 应用软件开发 192
9.1.1 工程目标 192
9.1.2 他山之石 193
9.1.3 技术之外 195
9.2 需求分析与设计 196
9.2.1 企业信息化与信息系统 196
9.2.2 企业经营与ERP 197
9.2.3 数据建模与功能建模 198
9.2.4 软件体系结构 202
9.3 程序实现 203
9.3.1 构建体系结构和主控界面 203
9.3.2 实现主控模块 205
9.3.3 实现实体层的Employee类 206
9.3.4 实现UIL层的
EmployeeUI类 206
9.3.5 实现BLL层的
EmployeeBL类 211
9.3.6 实现DAL层的数据库类 213
习题9 216
参考文献 217
|
內容試閱:
|
前 言
镰刀、锄头等第一代人力工具可把物质资源加工成材料,扩展了人的体质功能,孕育了农业时代的生产力,创建了农业文明。机车、机床等第二代动力工具可把能量资源转换成为动力,扩展了人的体力功能,形成了工业时代的生产力,建立了工业文明。
20世纪后半叶,人类开始认识到信息也可以作为一种资源,甚至是更为重要的资源。综合利用物质材料、能源动力和信息知识,可制造新一代既有活力又有智能的生产工具。第三代生产工具用于扩展人类的智力功能,从而培育出信息时代的生产力,把工业文明进一步升华为更加辉煌的信息文明。
为迎接信息社会的来临,以信息化带动工业化,以工业化促进信息化,走出一条科技含量高、经济效益好、资源消耗低、环境污染少、人力资源优势得到充分发挥的新型工业化道路,是世界各国现代化的必然选择。
在引领时代的软件行业,软件工程师始终是最为紧俏的科研人才。当今软件开发人才的培养速度难以企及软件行业的发展,主要在于对程序设计的片面理解和传统的教育模式。随着软件技术的发展,企业对软件人才的需求不再呈现金字塔式的结构。现在,许多初级程序设计工作更多的是使用自动化工具完成,程序设计的门槛已经降低。在人才培养上,过多地强调程序设计语言的语法式教学或过细地解析API的列表式培训已经不合时宜,难以有效地培养合格的软件工程师。
众所周知,作为第三代智能工具的典型代表,计算机的主要功能是实现计算的自动化,涉及计算的对象数据和计算的过程算法。数据和算法用程序来描述,计算自动化的核心任务就是程序设计。除了数据和算法,程序设计还涉及程序设计语言、计算环境、程序设计范式等多个方面。程序设计类的教材,有的突出程序设计语言,有的偏重程序设计工具,难以将程序设计所涉及的方方面面有效结合起来。本书以面向对象范式为主线,将程序设计语言、工具库和方法学等有机串接起来,注重文化传承,中西结合,以及现实世界与机器世界的关联,旨在培养深刻理解程序设计核心概念、基本原理,掌握实用程序设计技术和方法,具备自主学习和终身学习的意识,具有不断学习、适应发展、能解决实际应用问题的能力的实用型软件工程师。
面向对象程序设计范式具有封装、继承、多态等优点,能显著提高程序的可重用性和可扩展性,是现代开发大型应用软件的主要技术。支持面向对象程序设计范式的程序设计语言有很多,如C、Java、C#等。20世纪80年代以来,CC一直是使用最为广泛的商业化程序设计语言。高校计算机相关专业普遍开设有面向对象程序设计类课程,使用的教材一般是用C进行描述的。但是,C过度的功能扩张破坏了面向对象的设计理念,而且学习周期长,开发效率低,软件行业迫切需要一种能在控制力和生产率之间达到良好平衡的全新程序设计语言。因此,C已经难以适应行业和高校的教学要求。C#是一种简单、现代、通用、完全面向对象的程序设计语言。它从CC发展而来,汲取了CC、Delphi、Java等多种语言的精华,具有语法简洁、与Internet结合紧密、安全高效、灵活兼容等优点。C#语言简洁易懂,更适合高校和培训机构传授面向对象设计理念和技术。从C#入手,可以更容易体验和感悟现代化程序设计方法和技术,掌握可重用面向对象软件的开发方法,大幅度提高复杂软件系统的生产率和质量。本书是我校面向对象程序设计精品资源共享课程教改研究的结晶,用C#语言描述和介绍面向对象程序设计范式,思路新颖、图文并茂,不仅适用于本科院校的学生,也可作为各类培训班学生面向对象程序设计或桌面应用开发类课程的首选学习用书。
本书作者是具有软件开发和项目管理经验的大学教师。作为国家注册的高级程序员,在软件企业长期从事软件开发、程序设计、技术培训等工作,开发过多项软件系统。从教后,主讲计算机科学基础、面向对象程序设计、软件工程、程序设计范式、软件设计模式、软件项目管理等多门课程,对软件工程、程序设计、技术培训、专业教育等有着深刻的理解和丰富的实践经验。本书是作者教学和培训经验的积累,具有如下特色。
1 概念探源:计算机科学知识源于欧美国家,从源头梳理概念可以帮助读者把握知识发展脉络,为跟踪学习先进技术指引方向,培养技术研究能力和终身学习意识。本书的大部分核心概念都从Wikipedia指出出处,对一些容易引起混淆的概念,都针对原文进行了详细解析。我国计算机相关术语来自英文资料,在引进时可能会遇到翻译障碍。例如,C语言的函数由function翻译而来,而函数术语本身是由清朝数学家李善兰翻译而来。但从程序设计角度,function译为功能模块或过程模块也许更便于理解。本书的概念探源试图引导学生从概念入手逐步加深对程序设计语言实现机理的理解,进而掌握程序设计技术和方法。
2 注重思想:一种程序设计语言可以体现多种范式,如C#语言既支持过程式,也支持面向对象、组件化等思想;一种范式也可以在多种程序设计语言中体现,如C、Java、C#等语言都支持面向对象程序设计范式。每门语言都有各自的特点及难点。针对不同的任务,应该用不同的语言实现。同一个任务,用同一种语言实现,不同的方法会有不同的效率。本书解析了用不同思想解决同一问题的优缺点,以加深对面向对象程序设计范式的理解。书中还适当点缀中国文化思想,在增强趣味性的同时,对于中西方文化的结合和传承也有一定的启示意义。
3 分层递进:从基础级的变量与过程到对象级的封装、继承与多态,从模式级的委托与事件到实用级的集合与泛型,从应用级的图形处理、文件存储、数据库访问到企业级的复杂软件项目开发,逐层递进,分类学习。本书前半部分第1~4章以概念及C#语言实现机理为主,强调计算机与现实之间的关系;后半部分第5~9章以应用.NET框架类为主,强调程序设计的实用性。
4 案例驱动:本书所涉及的主要概念都以完整的案例加以说明,与现实紧密结合,避免了技术的枯燥性,增强了实用性和趣味性。第6~8章用一个完整的案例串接起来形成一个有机的整体,为实现多层应用程序打下基础。第9章以企业信息化为目标,实现了一个基于分层软件体系结构的管理信息系统的原型。以此案例作为软件开发能力构建的目标,可有的放矢地驱动学习的进程。
另外,本书还为重要的知识点配备了全程板书式授课的教学微视频,可用于MOOC模式的教学或自学。
在本书的编写过程中,参考了很多国内外同行的有关资料,西南石油大学计算机科学学院的廖浩德、杨力、杨云、高磊、王世元,现代教育中心的向海昀、汪立欣,教务处的符晓等教师参加了写作思路的研讨、收集资料、编写和程序调试等工作。张豫新全程负责教材的编写和出版事宜,包括案例设计、文字录入、图形绘制、内容合成和编辑审校等。西南石油大学教务处、教材科、计算机科学学院和理学院等部门的领导、工作人员和教师多年来对作者始终给予了热情的支持和鼓励。清华大学出版社对本书的出版十分重视并做了周到的安排,使本书得以在短时间内顺利出版。在此向他们表示诚挚的谢意。
由于作者水平有限,疏漏之处在所难免,敬请广大读者批评指正。
编 者
|
|