早期的程序设计语言把变量看做是孤立的东西。例如,如果在一个程序中需要处理日期,则往往声明三个独立的整数,分别代表日、月、年。如下所示:
该语句做两件事。第一件事,它表明当遇到日、月或年时,在内存中处理的是一个整型而不是其他类型;第二件事,它还为这些整数分配了存储空间。虽然这种方法容易理解,但它有两点明显的不足。其一,如果程序需要处理多个日期,则需要更多的说明。例如要保存两个生日,需如下说明:
这种方法因使用多个变量变得混乱,容易出错。同时,又占用了过多的命名空间。其二,更重要的是每个值都是独立的变量。从概念上来讲,日、月、年之间是有联系的,它们是同一日期的各个部分。如果用三个整型量表示一个日期,则这三个整型变量之间互相没有约束,它们的取值范围只受整型位数限制。事实上,日期三部分的取值互有约束,比如,日期的值范围为0~31,月的值范围为1~12。除此之外,对应于不同的月份,日期的取值范围还稍有不同。遇到闰年或平年,2月份的天数也不一样。
对大多数程序设计语言,如PASCAL、C、C++等都提供类型变量(Typed Variable)概念。类型变量是一个值,可以是整数、浮点数或一个字符。每种语言本身都有几种内置类型,但我们对新类型的定义更感兴趣。如果用户使用某种语言能定义新的类型,那该语言的处理能力可得到很大扩展。一般地,称用户定义的新类型为复合数据类型。
在有些语言中,复合数据类型又称作结构类型或记录类型。复合数据类型由程序员在源程序中定义。一旦有了定义,该类型就可像其他类型一样使用。(www.xing528.com)
在使用系统内置类型定义变量时,因为每种类型都是预定义的,所以无需程序员详细列出变量的存储结构。例如,对下面整型变量day的定义:
Java知道要分配多大的存储空间,它还能解释所存储的内容。而对于新定义的复合数据类型,因系统不知道它的具体内容,所以要由程序员指定其详细的存储结构。这里存储空间的大小不是以字节来衡量,也不是位,而是按已知的其他类型来考虑。
Java是面向对象的程序设计语言,它为用户提供复合数据类型,即类和接口。我们将在第4章Java面向对象特性中详细地介绍类和接口。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。