



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象编程的理解与分析(对象本质论)引言提起面向对象的概念, 我想对于每位程序员来说,对他的理解各有独到见解,有的深入肌理,有的剑走偏锋。但是无论如何, 我想对于下面的几个概念性的问题应该值得我们去重视:类,对象,继承,封装,多态。正是由于这些元素构成了我们面向对象设计的基本逻辑。理解面向对象好的方法就是用实际生活来类比对象世界,下面就以人类的角度分析来说明:计算机世界中的对象,同时也是用对象的逻辑反思人类。对象的衍生对象和人 ,两个世界,一样的情怀。对象就好比我们现实生活中的人类,生则入世,死则离世。首先我们看下人类的出生:每个人都要经过婴儿落世,成为一个现实生活的个体,但是在这个过程中,熟不知十月怀胎正是个体衍生的复杂演变过程,母亲为胎儿提供了良好的环境及其养分。在这个过程就是正正的一次生物化构造。而在我们程序设计中,对象衍生也是一次构造过程,先手在内存中分配存储空间;然后初始化其附加成员,就像给人取名字一样,最后调用构造函数初始化。但是在其附加成员过程中,就好像人出生落地没有任何物品一样,在其构建成功后才赋给了一样。这些操作可能在随后操作完成,通过属性或者方法来给其必要的信息。对象的衍生说白了就是,构建对象的基本初始化构造过程。我们个体人的存在也存在工种之分,在对象世界里也一样,我们称之为数据类型,但是我们人类在所形成的规则下农民在田地里务农,工人在工厂生产,对象也可以进行标准规则分类,值类型与引用类型,而在程序运行过程中,存储内存的位置不一样,值类型存储在线程的堆栈上,而引用类型位于托管堆上一样。正如农民可以进城务工,工人可以返乡务农,我们把这样的过程在程序中体现为装箱与拆箱(Boxing and UBoxing),在人类世界中,每个人都有姓名,年龄,籍贯等描述自己的信息,同时每个人都有不同的行为操作这些信息。 比如 我们出生后,就有父母给我们起好了名字,但是在现实生活中,根据需要,我们每个人都有可以更改自己的名字的权利。在程序世界里,我们把这样的更改行为叫做方法,名字叫做属性,我们可以通过方法来改变我们对象的属性。人与人直接交流通过语言交流,当人一出生,便就开始了跟这个世界进行沟通,形成相互关系,融入到社会群体中去。在对象世界里,通过也可以将对象与对象联系起来,对象之间的交互性操作方式,我们会在”设计模式”中讲到。对象的生存之道对象生存环境是CLR,而人类的生存环境是我们整个社会群体。CLR提供了对象赖以生存的托管环境,制定了一些规则,我们称为“语法”。例如:多态,继承,数据类型,垃圾回收等。而社会提供了一些约束我们人类活动的秩序,比如 法律,交通规则,道德等。具体的实施用法就是我们所谓的“语义”。 人类社会应该是一个体系结构,也是分层的。上层建筑代表了思想与政治,通过社会契约和法律规范为经济基础,对象世界里,我们称为“接口”在面向接口编程中,其实是以接口方式来抽象变化,从而形成一种体系。关于继承,在人类社会中,一般继承是发生在具有血缘关系的族群中,儿子继承父亲,包括基因,财产,姓,但是不意味着继承所有,比如父亲的隐私。其实在软件设计中的继承,目的就是解决我们代码冗余,提高复用性。而关于多态,人的世界里,我们常常在不同的环境中表现出不同的行为或者角色,并且遵循不同的规则。例如: 我们在学校,我们是学生,在公交车上我们是乘客,在家里我们是作为父母的子女。同样的你在学校你作为学生,你可以打篮球,但是在公交车上 你作为乘客,是不可以打篮球的。所以身份不同,带来的差异也不同。对象的消亡对象和人有生必然有死。而且世界上没有长生不老药。在对象的世界里,它的生命由GC来控制。而在人的世界里,我们把GC叫做什么?-自然规律。进入死循环的对象,我们称为违反规则的。必然逃脱不了被KILL的命运。在程序中体现就是报错。其实GC控制着托管所有的对象,当内存回收执行时,GC检查托管堆中存在不在使用的对象,并执行回收执行。不被引用程序使用的对象,指的是对象没有任何引用。一般情况下,我们对于托管代码都是有GC来完成,在完成之前,首先由系统管理自动调用对象释放工作,也就是对象脱离作用域系统自动执行析构函数,最后交给垃圾回收器来完成最后的清理工作,腾出更大的有效内存空间。因此我们在程序设计中,都不显式的调用析构函数,这样就避免了GC调用时候,会先检查系统管理中的资源释放。这样就要执
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 仓鼠养殖合同样本
- 工程招标廉洁承诺书
- 美容院转让协议书范例
- 分期付款买卖合同样式二零二五年
- 两人合伙开发公司合同标准文本
- 无中介二手房买卖简单合同范例二零二五年
- 销售部提成管理制
- 校长聘用合同校长聘用合同范文
- 产品商标授权使用合同标准文本
- 造价咨询实施方案
- 城市道路养护技术规程
- 初中信息技术教学中的项目式学习
- 部编版语文二年级下册第3单元核心素养教案
- 基于PLC的小区排水控制系统设计毕业论文
- DB43-T 1712-2019 银行业金融机构智能预警系统安全防范要求
- 2023年云南省接受军转干部安置考试试题
- 初三英语试卷分析失分原因和改进措施
- 关于在生产过程中物料流转的交接和管理规定
- 2022年高考真题及答案解析《历史、地理、政治》(湖北卷)
- 高中数学人教A版空间几何体(省一等奖)
- 把未来点亮歌词打印版
评论
0/150
提交评论