我不知道关于ABAP的事情,除了它有一个OO方面,我想在我开始仔细研究之前对它有一些直升机视图.我知道我可以在研究它时找到所有这些,但就像我说的初学者一样,我想知道我在处理什么.
任何关于特征的一般信息基本上都是受欢迎的
vwe*_*ert 78
是(总是)编译?
ABAP被"编译"成一种字节代码(由于历史原因称为"加载"),然后由内核中的虚拟机执行.您可以将其与Java进行比较,但有一个很大的区别:负载与机器无关,但针对目标机器类型进行了优化.这意味着在具有多种不同类型的应用程序服务器的系统环境中,您可能会为单个程序提供多个预编译的加载.并不是说你会看到任何这一点 - 整个编译过程都是自动处理的.
Typestem:它是强类型的吗?它是否使用类型推断?
在顶部强有力地键入泛型类型的系统.请注意,有一个完整的数据字典集成到该语言中 - 非常方便.
继承:单个/多个,类似接口的结构?
单继承.支持接口,包括复合接口和实现组件重命名(两个接口IF_FOO和IF_BAR都可以定义方法BAZ,并且实现两个接口的类将具有两个方法IF_FOO~BAZ和IF_BAR_BAZ).
集合:除了数组之外还有它的集合吗?它是通用收藏品吗?它是否使用List理解?
您在其他编程语言中称为"数组"的内容在ABAP中并不存在 - 您通常会使用所谓的"内部表".想想类似数据库的结构化内存表.有一些关于通过不同模块展开的集合类的想法,但是这样做的规范方法是使用内部表 - 定义所谓的表类型的行,这些行表示对包含这种引用的实例或结构的引用.
数组,返回类型,参数类型,重写方式(con/contra/in)方差怎么样?
数组:见上文.覆盖:在实现接口方法或覆盖超类方法时,无法更改方法签名.至于参数 - 这取决于您是传输数据(或数据引用)还是对象引用.通常,当您必须明确执行向下转换时,可能会隐式发生向上转换.
任何例外处理?
是.不止一种方式 - 再次出于历史原因(向后兼容性).支持基于类的异常.
是否通过合同支持进行设计?
没有我知道的.
选择其他众所周知的语言有什么值得注意的吗?
很多东西.您可能需要查看http://www.volker-wegert.de/en/node/17和http://www.volker-wegert.de/en/node/21以获得公认的偏见概述:-)
Noa*_*oah 24
我会尝试提供之前的回复没有的东西,同时跳过他们提到的内容:
是(总是)编译?
好吧,程序员的界面说"激活",而不是编译,但这是因为内置版本管理.当您激活某些内容时,它会对其进行编译,并使源代码和二进制版本成为"活动"版本.如果有人试图运行未编译的源,它将在运行时自动编译.
Typestem:它是强类型的吗?
基本上,是的.ABAP就像Pascal和COBOL之间的奇怪交叉.有"Field Symbols",就像指针一样.现在也有通用类型.(和通用字段指针).最酷的事情之一是ABAP类型和数据库类型之间没有区别.您制作的任何表格都将自动成为结构类型.也就是说,ABAP以几乎没有其他语言的方式与数据库集成.您也可以编写SQL,它实际上是ABAP的一部分,而不是像其他语言一样只是一个字符串.
继承:single/muliple,类似接口的结构?
有接口结构,我通常不使用它们.如果你做了很多可重复使用的课程,那么他们会是一个好主意.
集合:除了数组之外还有它的集合吗?它是通用收藏品吗?它是否使用List理解?
更好的是,它有"内部表",它基本上是一种动态数组.它们几乎可以从任何类型声明,包括数据字典中的那些类型.它们可以循环,排序等.有几种类型,包括散列和排序变体.
任何异常处理?
OOP和非OOP类型.
选择其他众所周知的语言有什么值得注意的吗?
正如另一张海报所说,很多.它与数据库操作和重用复杂结构和数据类型有关.它自然是跨数据库和跨平台(OS和处理器).它有一个非常好的版本管理和传输系统.整个SAP系统具有非常好的多语言支持.您可以自动获得具有适当标题和选择框的简单屏幕,这意味着您可以减少编程和更多工作.你不必在数据库类型和语言类型等之间进行映射.
它不擅长的事情:
1.数字通常存储为ASCII,这使得它在许多应用程序中的数学运算速度都快.
2.大多数数据结构都非常规范化,这意味着您的数据有时可能分布在50个表中."明星"查询非常常见.在这些情况下,内置函数来检索数据(fe逻辑数据库)是你的朋友.
3. SAP试图成为每个人的一切,因此有很多配置选项等等,有时功能根据过去的行为不能达到您的预期.
4. ABAP有时非常冗长.尝试使用像GUI_DOWNLOAD这样简单的"模式"按钮.
5.SAP非常雄心勃勃,因此在早期遇到了硬件,操作系统和RDBM系统的限制.因此,他们有传统的克服,以处理它不漂亮.(池表,群集表等)
6.激活程序时,它不会与使用的功能模块进行完全兼容性检查.在某些情况下,某些东西会在没有问题的情况下激活,但随后会在运行时崩溃,即使在编译时可能已被捕获的情况下也是如此.
| 归档时间: |
|
| 查看次数: |
6211 次 |
| 最近记录: |