你必须知道的.NET.pdfVIP

  • 769
  • 0
  • 发布于浙江
  • 举报
  • 文档已下架,其它文档更精彩
《你必须知道的.NET》 作者简介:王涛 微软C# MVP,高级软件工程师,机械工程硕士,主要研究方向为.NET 底层架构和企业级系统应 用。现就职于某软件公司负责架构设计、软件开发和项目管理方面的工作。作者对.NET 基础架构和CLR 底层运行机 制有浓厚的研究兴趣和造诣,熟悉ASP.NET、XML、SQL Server 相关技术,对面向对象、设计模式和软件架构有一 定的研究与实践经验。 第1 部分渊源——.NET 与面向对象 第1 章OO 大智慧 1.1 对象的旅行 2 1.1 对象的旅行 3 本节将介绍以下内容: 4 —面向对象的基本概念 5 — .NET 基本概念评述 6 —通用类型系统 7 1.1.1 引言 8 提起面向对象,每个程序设计者都有自己的理解,有的深入肌理,有的剑走偏锋。但是无论所长,几 个基本的概念总会得到大家的重视,它们是:类、对象、继承、封装和多态。很对,差不多就是这些 元素构成了面向对象设计开发的基本逻辑,成为数以千万计程序设计者不懈努力去深入理解和实践的 根本。而实际上,理解面向对象一个重要的方法就是以实际的生活来类比对象世界,对象世界的逻辑 和我们生活的逻辑形成对比的时候,这种体验将会更有亲切感,深入程度自然也就不同以往。 9 本节就从对象这一最基本元素开始,进行一次深度的对象旅行,把.NET 面向对象世界中的主角来一 次遍历式曝光。把对象的世界和人类的世界进行一些深度类比,以人类的角度戏说对象,同时也以对 象的逻辑反思人类。究竟这种旅程,会有什么样的洞悉,且看本文的演义。 10 对象和人,两个世界,一样情怀。 11 1.1.2 出生 12 对象就像个体的人,生而入世,死而离世。 13 我们的故事就从对象之生开始吧。首先,看看一个对象是如何出生的: 14 Person aPerson = new Person(小王, 27); 15 那么一个人又是如何出生呢?每个婴儿随着一声啼哭来到这个世界,鼻子是鼻子、嘴巴是嘴巴,已经 成为一个活生生的独立的个体。而母亲的怀胎十月是人在母体内的成长过程,母亲为胎儿提供了所有 的养分和舒适的环境,这个过程就是一次实实在在的生物化构造。同样的道理,对象的出生,也是 一次完整的构造过程:首先会在内存中分配一定的存储空间;然后初始化其附加成员,就像给人取个 具有标识作用的姓名一样;最后,再调用构造函数执行初始化,这样一个对象实体就完成了其出生的 过程,例如上例中我们为aPerson 对象初始化了姓名和年龄。 16 正如人出生之时,一身赤裸没有任何的附加品,其余的一切将随需而生,生不带来就是这个意思。对 象的出生也只是完成了对必要字段的初始化操作,其他数据要通过后面的操作来完成。例如对属性赋 值,通过方法获取必要的信息等。 17 1.1.3 旅程 18 婴儿一出世,由it 成为he or she ,就意味着从此融入了复杂的社会关系,经历一次在人类伦理与社会 规则的双重标准中生活,开始了为人的旅程。同理,对象也一样。 19 作为个体的人,首先是有类型之分的,农民、工人、学者、公务员等,所形成的社会规则就是农民在 田间务农,工人在工厂生产,学者探讨知识,公务员管理国家。 20 对象也一样是有类型的,例如整型、字符型等等。当然,分类的标准不同,产生的类别也就不同。但 是常见的分类就是值类型和引用类型两种。其依据是对象在运行时在内存中的位置,值类型位于线程 的堆栈,而引用类型位于托管堆。正如农民可以进城务工,工人也可以回乡务农,值类型和引用类型 的角色也会发生转变,这个过程在面向对象中称为装箱与拆箱。这一点倒是与刚刚的例子很贴切,农 民进城,工人回乡,不都得把行李装进箱子里折腾嘛。 21 作为人,我们都是有属性的,例如你的名字、年龄、籍贯等,用来描述你的状态信息,同时每个人也 用不同的行为来操作自己的属性,实现了与外界的交互。对象的字段、属性就是我们自己的标签,而 方法就是操作这些标签的行为。人的名字来自于长辈,是每个人在出生之时构造的,这和对象产生时 给字段赋值一样。但是每个人都有随时更名的权力,这种操作名称的行为,我们称之为方法。在面向 对象中,可以像这样来完成: 22 aPerson.ChangeName(Apple Boy); 23 所以,对象的旅行过程,在某种程度上就是外界通过方法与对象交互,从而达到改变对象状态信息的 过程,这也

文档评论(0)

1亿VIP精品文档

相关文档