知识大全 叩开C#之门系列之C#与面向对象编程语言
Posted 类型
篇首语:听闻少年二字,当与平庸相斥。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 叩开C#之门系列之C#与面向对象编程语言相关的知识,希望对你有一定的参考价值。
叩开C#之门系列之C#与面向对象编程语言 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
C#是纯粹的面向对象编程语言 它真正体现了 一切皆为对象 的精神 在C#中 即使是最基本的数据类型 如int double bool类型 都属于System Object类型 此外 使用C#编程 不会存在与游离于对象之外的属于过程的东西 因此 学习C# 就必须具有面向对象思想 不明白所谓的 面向对象思想 就不可能掌握C#的精髓 而对于C#的理解 就只能仅限于语言特色的表面了
很多讲解面向对象思想的书籍和文章喜欢将面向对象与面向过程相比较 然而对于学习程序设计的初学者而言 是完全没有必要的 一张空白的纸张 事实上比写满字的纸张更利于未来的发展
那么什么是 面向对象思想 ?其精要当然是 一切皆为对象 的意义 软件的开发与设计 是围绕着开发的目标进行的 比如开发一个电子商务网站 那么与电子商务有关的都是我们要操作和关心的 商品 订单 用户 目录 购物车等等 都是对象 如果要开发一个论坛 那么论坛中必备的要素 如论坛分类 主题 帖子 评论 用户 也全都是对象 从小处说 我们要求写一个算法用以计算阶乘 那么起始值 运算结果 以及整个算法都是对象
那么对象具有什么特质?一般而言 一个对象应具有属性和行为 以现实世界为例 人 作为一种特殊的动物 也是我们所称谓的 对象 这个对象具有很多属性 例如姓名 身高 体重 民族 国籍 出生年月等等 而行为呢 可以是行走 吃饭 跑步 乃至于玩游戏 踢足球 如果从词义学的角度来看 属性更偏向于名词的范畴 而行为则近乎于动词 然而对象也有特殊的情况 或者只具有属性 或者只具有行为 例如身份证 可能只具有姓名 出生年月 籍贯 身份证号等属性 而没有行为 例如 飞 这本身是一种动作 但同样可以认为是一种行为
然而这种划分并非绝对 根据实际情况 同一种对象具有的属性和行为可能不一样 例如同样是 人 如果是要开发一个户籍管理系统 我们就不必去考虑行走 吃饭 跑步等行为 但如果是一个足球游戏 那么对象 人 就需要各种踢足球的动作作为该对象的行为了 再比如 身份证 对象 也可能为了使用方便 会为它添加 IsValidate 这样一个行为
还要注意的是 很多时候属性其实本身也是一个对象 例如姓名 可以是string类型 它属于Sytem Object对象类型 我们也可以单独为姓名建立一个类对象
public class Name public string FirstName; public string MiddleName; public string LastName;
在C#里 有各种各样的对象类型 除了本身提供的基本类型外 还支持自定义各种类型 包括class struct enum interface delegate event 以前面的例子来看 对象Person 人 就可以被定义为class类型 国籍可以被定义为enum类型 没有行为的身份证 也可以被定义为struct类型 动作 飞 可以被定义为interface类型 至于delegate和event 则是一种特殊对象类型 例如我们可以为论坛管理系统 定义一系列事件 如BeforePost AftERPost等等 关于这些内容 我会在后面的内容中详细讲解
要掌握面向对象思想 就必须具备识别系统中对象的能力 在我们要开发的系统中 哪些需要定义为单独 的对象 而且这个对象应该具备哪些属性和行为 都是初学者比较头疼的问题 要正确地识别对象 就需要首先分析该系统所应实现的功能 例如 我们要求开发一个电子商务系统 功能要求如下
支持商品的查询功能
用户如需购买商品 需要成为注册用户并登录
如果当前库存无该商品 用户可以预订
用户可以将商品放入购物车
用户购买商品之前 需提交订单
用户提交订单后 系统应将订购信息发送邮件给用户
用户可以对商品添加评论
有一个简单的方法 可以帮助我们识别对象 就是找出这些功能描述中的关键名词 如商品 用户 购物车 订单 评论 这些词语基本上可以涵盖这个电子商务系统的主要对象了 至于对象的属性 可以考察该系统对这个对象的要求和所需要的信息 例如商品 必然要求有商品名 价格 相关图片 所属类别 库存量等等 至于行为 我们还可以从功能描述中去寻找与这些对象名词相关联的动词 例如商品的查询 就代表商品具有Search行为 用户注册与登录 就代表该用户具有这两种行为 ReGISter SignIn 当然隐含的行为自然还包括SignOut
真正要识别好对象 也许我们需要掌握UML的知识 知道怎么写用例 或者利用极限编程的方法 把一个个用户故事写出来 然后一一识别 不过这些知识对于初学者似乎太难了 我们现在知道能有这样一个方法就可以了 我更希望的是 读者在看完本节 能够建立起 一切皆为对象 的思想 最后 更希望大家能把识别对象看作是一种填字游戏 关键不在于答案是什么 乐趣全在游戏中了
cha138/Article/program/net/201311/14687相关参考
如果你已经有较多的面向对象开发经验跳过以下这两步 第一步 掌握一门NET面向对象语言C#或VBNET我强烈反对在没系统学过一门面向对象(OO)语言的前提下去学ASPNETASPNET是一个全面向
C#语言学习:C#数据报编程之测试程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C#中自定
上一次在使用Java开始面向对象的编程这篇文章中我们学习了一个编程语言要真正成为面向对象的它应该支持信息隐藏/封装多态继承和动态绑定另外我们知道了Java完全支持这些功能而且知道了因为Java是一
C#编程三步走之二 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 将表单初始化成给定的规格涉及到
C#编程三步走之三 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 第三步增加响应用户事件代码还有
全面剖析C#接口编程之定义接口 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 从技术上讲接口是一
C#设计模式编程之抽象工厂模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 抽象工厂(Abst
VisualC#编程入门之语句 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 程序的活动是通过语
C#GDI+编程之基础篇 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一关于GDI+ 从本质
深入解析C#编程中的事件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一个事件是一个使对象或类