Java,我自己的copy()方法不行

Java, my own copy() method would not work

我正在学习java,遇到一个小问题,我的copy()方法不行。我基于 UML 图工作,并且我非常确定我所做的一切都是正确的。这是代码:

构造函数:

public FileName(String name, String extension)
  {
    this.name = name;
    this.extension = extension;
  }

copy()方法:

public FileName copy()
  {
    return new FileName();
  }

错误在括号 FileName() 处闪烁,它表示:'FileName(java.lang.String, java.lang.String)' in 'Exam_Practice_4.FileName' cannot be applied to '()'
这也是我正在使用的 UML 图:https://imgur.com/a/oN87fpg
如果我能得到一些帮助,我将不胜感激。提前致谢。

您似乎不明白'side' 这些括号在图表中的作用。 copy() 表示复制方法 不带参数 。这并不意味着它调用的所有方法或构造函数都不能发送参数;这些是 UML 图根本不包含的实现细节。 UML 图仅向您展示结构,它们不能替代实际代码。

图表正确显示只有一个构造函数,它需要 2 个参数。

copy方法是一个实例方法(也就是说,它可以访问字段),所以你只需要写new FileName(name, extension)

就其价值而言,将其设计为可变对象在当今时代是近乎犯罪的行为,因此从这个意义上说,此 UML 图要么来自 20 年前的教程,要么是次优的。但这并不像您在评论中所说的不正确。它准确地反映了一个可疑的设计选择。