ABAP既有面向对象的特性,又有面向过程的特性,但我个人觉得,它纯粹的把这两种特性生硬的拼合在一起,结果就是一个“四不像”(应该说:两不像!)。ABAP面向对象相当的难用,根本不是面向对象,要是谁在跟我说“ABAP是真正的面向对象的语言”,我真想给他两嘴巴 !面向过程嘛,也是相当的烂,要和c相比,真是一个是天上,一个是地下。不信来看看下面这段代码:
REPORT Y00FUNCTIONS.
"主函数
data : num type i value9 .
perform sub changing num .
write : 'result : ',num.
"子函数 sub
form sub changing num.
write :'this is subfunction'.
num = num ** 2.
endform.
这段代码可以正确执行,但是,要是换一下字函数和主函数的顺序呢?如下:
REPORT Y00FUNCTIONS.
"子函数 sub
form sub changing num.
write :'this is subfunction'.
num = num ** 2.
endform.
"主函数
data : numtype i value 9 .
perform sub changing num .
write : 'result : ',num.
那么系统就会报错:statement is not accessible !