为什么在类的每个可见性部分都允许使用别名?

2020-09-08 22:33发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家您好, 我们知道,接口...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家您好,

我们知道,接口只能在类的公共部分中实现,但为什么在类的任何可见性部分中允许使用别名。 有什么具体目的吗? 检查以下样品。 在此代码中,由于在私有部分中声明了m1,因此在代码的最后一行出错。

 SPAN {
 字体家族:" Courier New";
 字体大小:10pt;
 颜色:#000000;
 背景:#FFFFFF;
 }
 .L0S52 {
 颜色:#0000FF;
 }
 .L0S55 {
 颜色:#800080;
 }
 .L0S70 {
 颜色:#808080;
 }

 接口1。
   方法:m1。
 结束界面。


 CLASS ICL定义。
   公共部分。
     接口1。
    专用部分。
     别名m1为if1〜m1。
 ENDCLASS。

 CLASS ICL实施。
   方法m1。
   终结法。
 ENDCLASS。

 选择开始。
   数据:lo类型参考文件。
   创建对象lo。
   lo-> if1〜m1()。  "没有语法错误
   lo-> m1()。  "语法错误
2条回答
绿领巾童鞋
2020-09-08 23:06

我想您的问题是从" OO设计"的角度出发的,为什么选择SAP 设计了拥有私人别名的可能性? (因为从技术上讲,很明显私有别名只能在类内部及其类的朋友内部使用)。

我的猜测:

1)当两个 对象将通过类而不是通过接口实例化,并且别名成员通常在外部使用(在类及其朋友之外)。

2)有时,成员很少在外部使用,但经常 内部使用(在班级内部或由其朋友使用)。 要遵循该规则,请仅公开最小的公共名称,并将其声明为私有别名。

PS:如果要分析SAP实际情况,则以下SQL查询列出了具有公共名称的(标准)类 和专用别名:

 SELECT DISTINCT CLSNAME
 从SEOCOMPODF A
 存在的地方(
 选择*从SEOCOMPODF B
 A.CLSNAME = B.CLSNAME AND ALIAS ='X'AND EXPOSURE = 0)
 和存在(
 选择*从SEOCOMPODF B
 A.CLSNAME = B.CLSNAME AND ALIAS ='X'AND EXPOSURE = 2)

下面的SQL查询列出了(标准)类,这些类在具有相同别名的组件上具有公共和私有别名 不同的接口:

 SELECT DISTINCT CLSNAME
 从SEOCOMPODF A
 存在的地方(
 选择 *
 从SEOCOMPODF B
 其中A.CLSNAME = B.CLSNAME
 AND A.REFCLSNAME <> B.REFCLSNAME
 AND A.REFCMPNAME = B.REFCMPNAME
 AND A.ALIAS ='X'
 AND B.ALIAS ='X'
 AND A.EXPOSURE = 2
 AND B.EXPOSURE <> 2)

一周热门 更多>