我知道ABAP对象有点老了但据我所知,你仍然需要使用至少两个"部分"创建一个完整的类。
ABAP:
CLASS CL_MYCLASS DEFINITION.
PUBLIC SECTION.
...
PROTECTED SECTION.
...
PRIVATE SECTION.
...
ENDCLASS.
CLASS CL_MYCLASS IMPLEMENTATION.
...
ENDCLASS.
爪哇:
public class MyClass {
<visibility> <definition> {
<implementation>
}
}
通过像大多数现代语言一样结合这两种方式,它不会使开发变得更容易/更快吗?
这种分离的原因是什么?
答案 0 :(得分:4)
对于人类(可能)更容易/更快,但编译器成本高昂:它必须筛选整个代码以确定类及其成员的结构,而在当前形式中,它只需要编译定义以确定引用是否有效。 ABAP不是唯一将定义与实现分开的语言:Pascal对单位执行此操作,对Object Pascal执行此类操作。有人可能会争辩说,当你不使用内联成员函数声明时,C ++允许相同的构造而不指定实现部分。
答案 1 :(得分:0)
也许是另一个原因:
大多数(?)类不是使用手动编写的代码定义的,而是通过SE24定义的。在那里,您可以在一个dynpro中定义接口,并将代码写入另一个。
在内部,接口存储在一个源中,代码存储在另一个源中。因此,将接口和实现分开是合理的。