Java 用UML表示重载方法

Java 用UML表示重载方法,java,uml,overloading,Java,Uml,Overloading,我试图创建一个代表一些Java代码的UML图 在一个类中,我有一个重载的方法 据我所知,UML图中没有显示方法的参数 如何在UML中表示方法重载 谢谢。检查整个图表或单个类/接口的显示选项。大多数UML工具都有显示方法参数列表的选项。在子类中,您使用与要重写的方法相同的签名指定方法,并向方法添加注释{redefines}。例如: +doSomething(p:AThing):int{redefines} 这意味着doSomething()方法将重写超类中的方法。是的,方法的参数如图所示。如示例

我试图创建一个代表一些Java代码的UML图

在一个类中,我有一个重载的方法

据我所知,UML图中没有显示方法的参数

如何在UML中表示方法重载


谢谢。

检查整个图表或单个类/接口的显示选项。大多数UML工具都有显示方法参数列表的选项。

在子类中,您使用与要重写的方法相同的签名指定方法,并向方法添加注释{redefines}。例如:

+doSomething(p:AThing):int{redefines}

这意味着doSomething()方法将重写超类中的方法。是的,方法的参数如图所示。如示例中所示,p是一个类型为AThing的参数。

您没有说您的工具和UML图(我认为是类图),但您有两种方法:

  • 你可以写一篇关于这个方法的笔记
  • 在这种方法中,你可以使用关键词刻板印象写作
    对于某个问题,上面的大多数答案都是正确的。Alepuzio、Vincent和bmatthews68都有在上下文中有意义的答案

    **如果问题是覆盖具有相同签名的超类方法,那么重新定义是正确的定义。如果它是重载的,因为您创建的方法采用不同的参数,那么我认为这不可能从结构上建模,您可以用一个序列图来显示这一点,例如,它是行为的,但仍然不是真正的

    所以+doSomething(p:AThing):int{redefines}是正确的,这就是文森特所说的

    **如果您的问题/问题只是围绕着一些参数,而这些参数在大多数UML工具中通常是设置的图表中并没有直观地显示出来


    **如果你想更清楚地说明你在做什么,那么使用关键字,还要注意关键字不是原型,因为它不是元模型的一部分。

    当谈论重载时-例如,在你的类中,你有更多同名但签名不同的方法(参数,可能返回值,取决于目标语言…),你应该提供签名。UML没有指定您不能有方法参数。

    您使用的是什么工具?+1,但您可能希望更正{redifines}->{redefines}的拼写。重载与重新定义不同。可能根本没有基类(Object除外),但该类可以有foo(int):int和foo(double):double。