ABAP数据定义之DATA和TYPES

  在ABAP程序开发中往往需要定义许多数据结构和数据类型。这就会用到DATA和TYPES关键字的使用,可很多初学者在学习之初会发现有时混用也是可以的。可究竟两者有什么区别呢?在下也是ABAP开发的新人,只能说是谈下个人的理解。(仅供个人参考,如有不对之处还请不吝指教)

  DATA从名字就可以看出其本质:用于定义数据的,可刚定义的数据是没有初值的。这时我们称之为数据结构,就像其他语言里的结构体一样,这种数据只需要往里填值就可以,不需要进行实例化(也就是不能直接当做数据类型一样使用,像I、P、C等)。

  TYPES顾名思义:用于定义type(类型)的,这种类型可以有一个或多个基础类型或结构来组成。它可以被实例化但是却不能直接接受外部赋值,这点和预定义的数据类型相同。

多说无益,下面用几个例子对比一下帮助理解:

[EXAMPLE]

DATABEGIN OF d,
          stu_id(9TYPE c,
          stu_name(8TYPE c,
          stu_class(7TYPE c,
       END OF d.
d-stu_id '0908103101'.
d-stu_name '司马相如'.
d-stu_class '信管092'.
WRITE:'学号:',d-stu_id.
WRITE:'姓名:',d-stu_name.
WRITE:'班级:',d-stu_class.

----------------------------------

结果:

-------------

学号:0908103101

姓名:司马相如

班级:信管092

----------------------------------

TYPESBEGIN OF data_type,
            stu_id(9TYPE c,
            stu_name(8) TYPE c,
            stu_class(7TYPE c,
           END OF data_type.
DATA d1 TYPE data_type.
d1-stu_id '0908103101'.
d1-stu_name '司马相如'.
d1-stu_class '信管092'.
WRITE:'学号:',d1-stu_id.
WRITE:'姓名:',d1-stu_name.
WRITE:'班级:',d1-stu_class.

----------------------------------

结果同上。

----------------------------------

 

 

posted on 2012-08-20 19:15  @bing  阅读(2831)  评论(0)    收藏  举报

导航