注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

SINOBANJO

IN GOD WE TRUST ! ~ ClueeZhuo

 
 
 
 
 

日志

 
 

.NET与面向对象之对象的旅行  

2012-03-19 20:01:35|  分类: 班卓.NET |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

提起面向对象,每个程序设计者都有自己的理解,

.NET与面向对象之对象的旅行 - 班卓安迪 - banjoandy@163—班卓客鲁国际有的深入肌理,有的剑走偏锋。但是无论所长,几个基本的概念总会得到大家的重视,它们是:类、对象、继承、封装和多态。而实际上,理解面向对象一个重要的方法就是以实际的生活来类比对象世界,对象世界的逻辑和我们生活的逻辑形成对比。 

出生篇

对象就像个体的人,生而入世,死而离世。我们的故事就从对象之生开始吧。首先,看看一个对象是如何出生的: Person aPerson = new Person("小卓", 22); 

那么一个人又是如何出生呢?每个婴儿随着一声啼哭来到这个世界,鼻子是鼻子、嘴巴是嘴巴,已经成为一个活生生的独立的个体。对象的出生,也是一次完整的构造过程:首先会在内存中分配一定的存储空间;然后初始化其附加成员,就像给人取个具有标识作用的姓名一样;最后,再调用构造函数执行初始化,这样一个对象实体就完成了其出生的过程,例如上例中我们为 aPerson对象初始化了姓名和年龄。 对象的出生也只是完成了对必要字段的初始化操作,其他数据要通过后面的操作来完成。例如对属性赋值,通过方法获取必要的信息等。 

旅程篇

婴儿一出世,由 it成为 he or she,就意味着从此融入了复杂的社会关系,经历一次在人类伦理与社会规则的双重标准中生活,开始了为人的旅程。同理,对象也一样。 作为个体的人,首先是有类型之分的,农民、工人、学者、公务员等。 对象也一样是有类型的,例如整型、字符型等等。当然,分类的标准不同,产生的类别也就不同。但是常见的分类就是值类型和引用类型两种。其依据是对象在运行时在内存中的位置,值类型位于线程的堆栈,而引用类型位于托管堆。正如农民可以进城务工,工人也可以回乡务农,值类型和引用类型的角色也会发生转变,这个过程在面向对象中称为装箱与拆箱。这一点倒是与刚刚的例子很贴切,农民进城,工人回乡,不都得把行李装进箱子里折腾嘛。 作为人,我们都是有属性的,例如你的名字、年龄、籍贯等,用来描述你的状态信息,同时每个人也用不同的行为来操作自己的属性,实现了与外界的交互。对象的字段、属性就是我们自己的标签,而方法就是操作这些标签的行为。在面向对象中,可以像这样来完成:aPerson.ChangeName("Apple Boy"); 

消亡篇

对象和人,有生必然有死。在对象的世界里,它的生命是由 GC控制的,而在人的世界里我们把 GC称为自然规律。进入死循环的对象,是违反规则的,必然无法逃脱被 Kill的命运,就如同没有长生不死的人一样。 对象的生命周期由 GC控制,其规则大概是这样:GC管理所有的托管堆对象,当内存回收执行时,GC检查托管堆中不再被使用的对象,并执行内存回收操作。不被应用程序使用的对象,指的是对象没有任何引用。

PS以演化推进的手法来描述面向对象程序世界的主角对象由生而死的全过程,好似复杂的人生。而其实,人也可以是简单的。


  评论这张
 
阅读(46)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017