数据类型和抽象数据类型

来源:互联网 发布:布鲁克林警察 知乎 编辑:程序博客网 时间:2024/05/18 03:16

我们知道在各种编程语言中都会有数据类型。

一.数据类型

先看看为什么会有不同的数据类型呢?很简单,很多东西不能一概而论,而是需要更精确的划分。计算机计算1+1并不需要多么大的空间,但是计算10000000000+1000000000就得需要有个比较大的空间来放。还有有时候会计算小数,小数的位数不一样,需要的空间也就不一样。数字1和字母a也需要区分啊,于是开发者就想出了“数据类型”这一招,用来描述不同的数据的集合。

我记得最早接触的数据类型就是int了。当初一个int a;就把我看得神魂颠倒,不知所以。像这种类型,就是一个基本的数据类型。以前总以为数据类型就是一个描述数据到底是什么玩意儿的东东,现在再去看,倒是有点儿浅了。数据类型学术点呢,是一个值的集合和定义在这个值集合的一组操作的总称。一种数据类型也可以看成是一种已经实现了的“数据结构”。

按“值”是否可分解,将其分为两类:

1.原子类型:其值不可分解,通常由语言直接提供,像C++中的int,float,double等等。

2.结构类型:其值可以分解为若干部分(分量),是程序员自定义的,比如结构体,类等等。

ps:对于什么是“原子”,经常会看到什么“原子操作”,“原子类型”,一般就是指不可再分的。

二.抽象的数据类型

抽象数据类型(abstract data type,ADT)只是一个数学模型以及定义在模型上的一组操作。通常是对数据的抽象,定义了数据的取值范围以及对数据操作的集合。

其实,数据类型和抽象数据类型可以看成一种概念。比如,各种计算机都拥有的整数类型就是一个抽象数据类型,尽管实现方法不同,但他们的数学特性相同。

抽象数据类型的特征是实现与操作分离,从而实现封装。

原创粉丝点击