【问题标题】:Class diagram for Java method with parameters带参数的 Java 方法的类图
【发布时间】:2021-12-03 08:01:51
【问题描述】:

我有一个使用以下方法的课程。在类图中编写方法及其参数的正确方法是什么?

public class Staff {
    public double calculatePackagesNeeded(double strippingNeeded, double strippingLength) {
        return (double)Math.ceil(strippingNeeded / strippingLength);
    }
}

我目前正在使用这个:

+calculatePackagesNeeded():double

但应该是这样的:

+calculatePackagesNeeded(double, double):double

【问题讨论】:

  • 你读了些什么来试图找到答案?
  • 那么,那你为什么不用它呢?
  • @tgdavies 我觉得我已经阅读了很多,无论是在这里还是在网络上,似乎都找不到一个例子来说明我在寻找什么(或者,更多可能,我只是不明白我找到的例子如何适用于我的要求)。如果有人问我,这就是我目前的理解: +getMethod():type //因为它返回一些东西 +setMethod():void //因为它什么都不返回 +workerMethod():type //没有参数,返回一些东西+workerMethod(type):type //1 个参数,如果我的问题以任何方式不好,则返回道歉。

标签: java methods parameters uml class-diagram


【解决方案1】:

原则上

根据 UML 规范:

操作是接口、数据类型或类的行为特征。操作可以直接在其特征分类器的实例上调用。操作指定名称、类型、参数和此类调用的约束。

照书看,应该是:

+calculatePackagesNeeded(strippingNeeded : Real, strippingLength :Real):Real

因为原始 UML 类型仅限于 IntegerBooleanStringUnlimitedNaturalReal,并且参数名称不是可选的。然而,如果我们假设一个特定于 java 的 UML 配置文件,并且如果我们允许隐藏参数名称,它确实可能是:

+calculatePackagesNeeded(double, double):double

在实践中

但是,对于高级模型,您不一定需要此级别的详细信息。此外,在任何 OO 建模的早期阶段,可以在确定参数的细节之前为类确定操作和职责。在这些情况下,您可以很好地使用:

+calculatePackagesNeeded():double

这种简化似乎可以接受恕我直言,只有当其他操作(至少是同一类)也以这种方式显示时,因为一旦您在模型中有一些真实的签名,快捷符号可能会产生歧义.

【讨论】:

  • 错字“...不是部分...”?
  • @tgdavies 确实如此。谢谢!已更正。
猜你喜欢
  • 2012-10-11
  • 1970-01-01
  • 2021-12-12
  • 1970-01-01
  • 2010-09-27
  • 2018-10-14
  • 1970-01-01
  • 1970-01-01
  • 2013-07-17
相关资源
最近更新 更多