面向对象程序中的对象封装

来源 :北京大学 | 被引量 : 0次 | 上传用户:z315659288
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
对象共享是面向对象程序中许多基本设计技术的基础,给软件开发带来很大方便。然而,没有任何约束的共享很难控制,所引起的别名问题给系统的安全带来极大的隐患。对象可以通过它的任何一个别名来修改,因此面向对象程序的行为很难预测、分析、及维护。对象封装是面向对象程序设计中最基本的和必需的要求。它将受保护的对象封装在安全的范围内,从而禁止外部对象对它们的直接访问。 常规的面向对象语言提供的访问控制机制仅仅是一种静态的可见性控制机制,它并不提供对程序运行时的对象的访问控制,从而不能支持对象的封装。近年来,人们提出了许多封装框架来增强现有面向对象语言对于对象封装的支持。其中大多数是静态封装框架,通过设计能够实现封装需求的类型系统来保证动态的对象封装。这种类型系统的实现完全是静态的,可以自动检查的。然而,静态封装框架往往语法限制太强,从而排除了一些本来封装行为良好的常见程序模式:或者语法标注太复杂,一般用户很难写出符合自己封装意愿的程序。而且,不同的静态封装框架的设计复杂多样,相互之间没有本质上的联系,导致用户难以正确地选择和使用。由于面向对象语言语义的复杂性,研究中提出的语义封装框架还很少。仅有的一个语义封装框架仍然借助于许多语法限制,并且只描述了一种特殊的封装需求。而另一个描述一般对象封装的模型仅停留在初步研究阶段,无实用价值。 本论文主要建立了面向对象程序中的对象封装的语义模型和性质,定义了能够描述封装限制的封装分离逻辑。该语义封装模型以一个典型的顺序面向对象语言μJaVa为基础语言,不依赖于任何语法上的封装限制,并且支持多样化的封装需求。基于堆的划分和封装限制条件,定义了良封装状态、良封装命令及良封装程序等概念。 论文中深入研究了语义封装模型的封装性质。一方面,基于μJava研究了面向对象语言中的各种命令的执行对对象封装的影响,即命令在何种情况下会导致封装的泄露。这些一般的性质能帮助程序员理解如何编写良封装的程序,尽可能地避免封装泄露。另一方面,文中给出并证明了能够局部判断程序封装的局部性定理。该定理说明在满足一定的清晰定义的条件的基础上,只需要检查程序中部分代码的行为,就可以确定整个程序是否为良封装的。该局部性定理还允许程序以类为单位进行扩展,只要扩展的类不增加新的封装需求,扩展后的程序仍能保持良封装性。这些性质可以简化对大型程序良封装性的验证。 为了体现语义封装模型的理论价值,文中形式地刻画了几个重要的封装实例,其中包括JavaJDK1.1.1中Class类实现的签名泄露问题,以及两种典型的静态封装框架:私有封装类和拥有者类。从中可以看出本文提出的语义封装模型的一般性。对于它们在语义封装模型中的形式化,文中都分别用直接定义和局部性定理两种方式来验证它们的封装性质。 本论文还提出了能够描述封装限制条件的封装分离逻辑。它以分离逻辑为基础,加入了描述封装限制的新的运算符。文中已建立了封装分离逻辑的关系模型,并且运用point-free技术,利用关系演算的推理系统,推理得到了封装分离逻辑的公理性质。从而为建立封装分离逻辑的公理系统奠定了基础。 本论文最后探讨了进一步的研究工作。其中包括封装分离逻辑的证明系统的完善,封装规范的描述,语义封装模型对其他别名控制技术的应用,及良好静态封装框架的构建等。
其他文献
人工神经网络(Artificial Neural Network,简称ANN)已经广泛应用于模式识别、工业控制、经济预测、优化计算等领域,但由于缺乏坚实的理论基础,其拓扑结构设计规则和学习算法
传统的解析重建算法往往要求CT投影数据的样本容量满足一个理论阈值以确保重建图像的质量。然而在CT成像的实际应用中,由于客观条件的种种制约,人们往往希望能在采样数据相对较
第一,要大力发展社会生产力特别是先进生产力。集中力量发展经济,使我国形成发达的生产力,这是中国特色社会主义事业兴旺发达的物质基础,是我们在日益激烈的国际竞争中掌握
1998年美国工程院院士Huang及其合作者提出了一种新的信号分析方法——Hilbert-Huang变换(HIilbert-Huang Transform,HHT),该方法的主要创新是本征模态函数(Intrinsic Mode Fun
访问控制是网络安全技术中一个重要的研究领域。随着应用环境的逐渐复杂,传统的访问控制机制已不能满足系统安全的需求。基于角色的访问控制RBAC在系统中引入了角色的概念,通过
八元数分析是近10年才发展起来的新的研究方向,其很多理论还很不完备.本文建立了八元数分析中的Runge定理、无界域上的Cauchy积分公式。 全文共分五章。 第一章:引言与主
本文依据己有含焦点代数曲线同宿环的二次多项式系统例子,利用简单的工具,对二次系统和相应代数曲线作Poincare变换.本文分别构造了具有3次、4次、5次及6次代数曲线同宿环的三次
本文中,我们主要研究非线性混合型方程Tricomi问题解的存在性及其唯一性.偏微分方程按照类型可以分为三大类:椭圆型方程、抛物型方程以及双曲型方程.单纯的一种类型方程的研究
组合计数是组合数学的一个重要分支。20世纪初,随着计算机的发展,组合数学方兴未艾[21],计数组合学也迅速发展。本文主要研究计数组合学中几个问题:即在前人的基础上研究整数的(
时滞微分代数系统(由时滞微分方程和代数方程组成)又叫时滞广义系统,或者叫时滞奇异系统,它是精确刻画现实运动最重要的工具之一。70年代,它被应用在电力系统、生态系统、力学系统