【发布时间】:2021-12-04 22:00:27
【问题描述】:
我正在学习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
如果我能得到一些帮助,将不胜感激。提前致谢。
【问题讨论】:
-
从外观上看,
FileName类没有默认(也称为无参数)构造函数。在方法copy()中调用它时,我们需要将参数name和extension传递给构造函数调用。 --- 顺便说一句:一个众所周知的模式是写一个copy constructor。 -
我明白了,但这意味着图表不正确。我说的对吗?
-
没有。图表不显示默认构造函数。
-
对不起,我是新手,有点不懂。 ``` + FileName(name : String, extension : String) ``` 不是默认构造函数吗?
-
没有。正如我所说:默认构造函数是无参数构造函数。我建议阅读this tutorial on constructors from Oracle 了解更多信息。
标签: java methods constructor copy