posts - 12, comments - 4, trackbacks - 0, articles - 0

导航

<2016年8月>
31123456
78910111213
14151617181920
21222324252627
28293031123
45678910

常用链接

留言簿(2)

随笔档案

文章分类

文章档案

blog

example source

framework

搜索

  •  

最新评论

阅读排行榜

评论排行榜

Class与Type的区别与联系

Posted on 2007-11-17 22:34 Edward's 阅读(3981) 评论(4)  编辑  收藏 所属分类: java

原作:徐家福

1: 类型的概念

概念:类型刻划了一组值及其上可施行的操作,可理解为值集和操作集构成的二元组。

类型的概念与值的概念相对立,前者是程序中的概念,后者则是程序运行时的概念,两者通过标识值的语言成分(例如,变量、表达式等)联系起来。

比如变量v说明为具有类型T,类型T所刻划的值集为{v1,v2,…vn,…},则变量v运行时能取且只能取某个vi为值。由此可见,类型规定了具有该类型的变量或表达式的取值范围。

2: 类与类型

A: 共性

在对象式语言中,“值”为对象(或对象指引,但本质上仍为对象)。所以,对象式语言中的类型刻划了一组对象及其上可施行的操作。类型所刻划的对象称为类型的实例。类也刻划了一组对象。

两者的共性在于二者均刻划了一组对象及其上的操作(在前面关于类的讨论中,并未强调类刻划对象上的操作这一事实),所以,既可以说对象是类型的实例,也可以说对象是类的实例,类型和类在与对象的关系上是相同的。不过,类型欲刻划一组对象及其上的操作,必须借助于类,因为类是达到这种目的的唯一设施。由此可见,类型是以类为基础的,是通过类来定义的,这体现了二者的联系。

B: 区别

l 作用不同

类是程序的构造单位,是描述一组对象及其上操作的唯一语言成分,故其作用主要是具体描述这组对象,提供运行时创建这些对象的“模板”。例如,基于类间的继承关系的派生类定义设施就反映了类在描述对象方面的作用。

类型则是标志变量或表达式取值范围的一种语言成分,其作用主要是对这些变量或表达式运行时的取值进行约束。例如,对赋值语句左部的变量和右部的表达式的类型匹配检查就反映了类型的约束作用。

l 与对象联系的紧密程序不同

类描述对象的具体形式和其上可施行的具体操作,且强调所描述的一组对象的共性,因而,与具体对象联系较密切,而与对象集的大小则联系较少。

类型强调所描述的一组对象的范围和可施行操作的范围,与对象集的大小联系较密切,而与其中具体对象则联系较少。

l 并不是所有类都可直接作为类型使用

类是类型的基础,类型靠类来定义,有些类可直接作为类型来使用,在这种意义下,我们也可称这些类是类型。

但是,也有一些类不能直接作为类型来使用,这是因为,从类型的约束作用来看,类型强调所刻划的对象的确定性,即对象范围的确定性。因此,只有所描述的对象的范围确定的类才可直接用作类型。

Feedback

# re: Class与Type的区别与联系[未登录]  回复  更多评论   

2016-06-03 16:52 by hh
test

# re: Class与Type的区别与联系[未登录]  回复  更多评论   

2016-06-03 16:52 by hh
test2

# re: Class与Type的区别与联系[未登录]  回复  更多评论   

2016-06-03 16:52 by hw
@hh
hello

# re: Class与Type的区别与联系  回复  更多评论   

2016-08-07 04:21 by 1111
@hh
我帮你测试一下

只有注册用户登录后才能发表评论。


网站导航: