繁体   English   中英

如果在一个文件中使用多个类,如何重载构造函数

[英]How to overloading constructors if using multiple classes in one file

当我尝试对此进行编译时,它说“找不到符号构造函数Armor(int,int,int,java.lang.String)”。 但是,当我将Armor(钝,刺穿,切割,名称)更改为Armor()时,它的工作原理就很好。 如果我在一个文件中使用多个类,是否不允许重载构造函数(这里我在一个文件中具有类抵抗性和Armor类)。 对于我来说,绝对有必要将它们放在同一文件中,因为我正在为不能提交多个文件的比赛进行练习。

public class resistance
{
    public static void main (String [] args)
    {
        int blunt=4;
        int pierce=2;
        int cut=7;
        String name="Helmet";
        Armor item = new Armor(blunt, pierce, cut, name);
    }
}

class Armor
{
int blunt;
int pierce;
int cut;
String name;

void Armor()
{
    blunt=0;
    pierce=0;
    cut=0;
    name="";
}

void Armor(int a, int b, int c, String d)
{
    blunt=a;
    pierce=b;
    cut=c;
    name=d;
}
}

void Armor(...)是与类同名的方法。
Armor(...)是构造函数。

如果要“重载”它,则必须显式定义此构造函数:

public Armor(int a,int b,int c,String d){
}

在您的护甲职业中。 如果用返回类型声明一个方法,例如void ,那么它不再是构造函数,而是方法。

这些不是构造函数。 它们具有返回类型,因此它们是方法。 摆脱void

如果使用的是IDE,请注意它给您的警告。 例如,eclipse告诉您“此方法具有构造函数名称”,这可以立即帮助您意识到错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM