gpt4 book ai didi

java - 构造函数已经在类中定义

转载 作者:行者123 更新时间:2023-12-01 17:52:19 33 4
gpt4 key购买 nike

我开始学习java,并且正在编写一个简单的曲棍球统计类。它看起来像这样:

public class Player 
{
private int games;
private int goals;
private int assists;
private char position;


public Player()
{
games = 0;
goals = 0;
assists = 0;
position = 'X';
}


public Player(int initialGames, int initialGoals, int initialAssists,
char initialPosition )

{
games = initialGames;
goals = initialGoals;
assists = initialAssists;
position = initialPosition;

}

public void setPlayer(int newGames, int newGoals, int newAssists, char
newPosition)
{
games = newGames;
goals = newGoals;
assists = newAssists;
position = newPosition;

}

public Player(int initialGames)
{
games = initialGames;
goals = 0;
assists = 0;
position = 'X';
}

public void setGames(int newGames)
{
games = newGames;
}

public Player(int initialGoals)
{
games = 0;
goals = initialGoals;
assists = 0;
position = 'X';
}


}

现在,这一切都编译得很好,直到我输入最后一个 block 的代码。当我尝试编译它时,出现以下错误:

(Player.java:52 错误:构造函数 Player(int) 已在类 Player 中定义)

我做错了什么?我非常严格地遵循教科书的格式来构建这门类(class),但我不断遇到这个错误。谁能告诉我发生这种情况的原因吗?因为我不完全理解这个编译器错误。

最佳答案

您没有正确重载。

您有 2 个具有相同签名的构造函数。

public Player(int initialGoals)
{
games = 0;
goals = initialGoals;
assists = 0;
position = 'X';
}

public Player(int initialGames)
{
games = initialGames;
goals = 0;
assists = 0;
position = 'X';
}

因此,一种快速解决方案是合并两个构造函数。

public Player(int initialGoals, int initialGames)
{
games = initialGames;
goals = initialGoals;
assists = 0;
position = 'X';
}

有一个构造函数,并在参数不可用时传递零。

对于前

Player p = new Player(5,0); // games 0
Player p = new Player(0,5); // goals 0

关于java - 构造函数已经在类中定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48635314/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com