【问题标题】:constructor in UML sequence diagramUML 序列图中的构造函数
【发布时间】:2013-02-21 21:29:27
【问题描述】:

下面的时序图是什么意思,具体的构造函数(表示为创建对象)是什么意思?

【问题讨论】:

    标签: constructor uml sequence-diagram


    【解决方案1】:

    消息的名称“Class B()”是错误的:它应该是“create”。
    这让你感到困惑吗?

    【讨论】:

      【解决方案2】:

      这意味着ClassA 实例化了ClassB。箭头表示ClassB的构造函数被ClassA调用

      【讨论】:

      • 我不知道是什么困扰着您。A 类呼叫new ClassB()。这更清楚吗?
      • 我们如何用Java等编程语言来表示这个调用?
      • 像这样:ClassB theClass = new ClassB();。这会创建一个B类的实例
      • 我确实知道如何创建类的实例,但我真的很想知道 ClassA 如何实例化图中的 ClassB,例如用 java 编写的?
      • @Chriss 你不明白什么?这就是 ClassA 实例化 ClassB 的方式。
      【解决方案3】:

      克里斯,希望你现在已经想通了。请接受 Cratylus 的回答,因为它是正确的。

      这是一个 Java 示例:

      Main.java

      package com.example.umlquestion;
      
      // (e.g. your application that makes and uses an instance of ClassA)
      public class Main {
          public Main() {
              // this calls ClassA's constructor, which will then call ClassB's constructor
              private ClassA instanceA = new ClassA(); 
              // ...
          }
      }
      

      ClassA.java

      package com.example.umlquestion;
      
      public class ClassA  {
          private ClassB instanceB;
          public ClassA() {
              instanceB = new ClassB();
              // ...
          }
          // ...
      }
      

      ClassB.java

      package com.example.umlquestion;
      
      public class ClassB  {
          public ClassB() {
              // ...
          }
          // ...
      }
      

      【讨论】:

        猜你喜欢
        • 2011-04-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-29
        • 1970-01-01
        • 2018-03-22
        • 2012-06-30
        相关资源
        最近更新 更多