Java-找不到符号构造函数

Java-找不到符号构造函数,java,methods,constructor,main,Java,Methods,Constructor,Main,我对Java完全陌生,所以如果我的问题是愚蠢的,我很抱歉。我正在做这个作业,我已经读了几个小时关于主要方法的书,但我就是搞不懂。我把我的一些代码放在下面。我可能离这里很远,但我希望实现的是获得启动构造函数的主方法,但是当我编译时,我得到一个错误,说找不到符号构造函数播放器。现在,我猜这和构造器的字符串参数有关,但我完全不知道了。如果有人能解释一下这个可能非常简单的问题,我会非常高兴: public class Player { private String nick; private Strin

我对Java完全陌生,所以如果我的问题是愚蠢的,我很抱歉。我正在做这个作业,我已经读了几个小时关于主要方法的书,但我就是搞不懂。我把我的一些代码放在下面。我可能离这里很远,但我希望实现的是获得启动构造函数的主方法,但是当我编译时,我得到一个错误,说找不到符号构造函数播放器。现在,我猜这和构造器的字符串参数有关,但我完全不知道了。如果有人能解释一下这个可能非常简单的问题,我会非常高兴:

public class Player {
private String nick;
private String type;
private int health;


public static void main(String[] args)
{
    Player player = new Player();
    player.print();
}


public Player(String nickName, String playerType) 
{

    nick = nickName;
    type = playerType;
    health = 100;
    System.out.println("Welcome " + nick +" the " + type + ". I hope you are ready for an adventure!");
}

   public void print()
{
    System.out.println("Name: " + nick);
    System.out.println("Class: " + type);
    System.out.println("Remanining Health: " + health);
}

当类显式定义时,不会创建隐式无参数构造函数

类中有显式构造函数

public Player(String nickName, String playerType) 
{

    nick = nickName;
    type = playerType;
    health = 100;
    System.out.println("Welcome " + nick +" the " + type + ". I hope you are ready for an adventure!");
}
并尝试调用无参数构造函数

 Player player = new Player();

您需要在上面的代码中传递参数,或者创建无参数构造函数。

当您的类显式定义时,不会创建隐式无参数构造函数

类中有显式构造函数

public Player(String nickName, String playerType) 
{

    nick = nickName;
    type = playerType;
    health = 100;
    System.out.println("Welcome " + nick +" the " + type + ". I hope you are ready for an adventure!");
}
并尝试调用无参数构造函数

 Player player = new Player();
您需要在上述代码中传递参数,或者不创建arg构造函数。

显然,您使用的是0-arg构造函数,而您没有:-

Player player = new Player();
请注意,当您在类中提供参数化构造函数时,编译器不会添加默认构造函数。如果使用0-arg构造函数,则必须手动添加一个0-arg构造函数

因此,您可以添加一个0-arg构造函数,如下所示:-

public Player() {
    this.nick = "";
    this.type = "";
    this.health = -1;
}
或者,使用参数化构造函数来创建对象。

显然,您使用的是0-arg构造函数,而您没有:-

Player player = new Player();
请注意,当您在类中提供参数化构造函数时,编译器不会添加默认构造函数。如果使用0-arg构造函数,则必须手动添加一个0-arg构造函数

因此,您可以添加一个0-arg构造函数,如下所示:-

public Player() {
    this.nick = "";
    this.type = "";
    this.health = -1;
}
或者,使用参数化构造函数创建对象。

玩家没有参数构造函数,您可以使用:

Player player = new Player("My Nickname", "Player Type");
如果希望提示用户输入播放器参数,可以这样阅读:

Scanner scanner = new Scanner(System.in);
System.out.print("Enter Player Name:");
String nickName = scanner.nextLine();
System.out.print("Enter Player Type:");
String playerType = scanner.nextLine();
Player player = new Player(nickName, playerType);
玩家没有参数构造函数,您可以使用:

Player player = new Player("My Nickname", "Player Type");
如果希望提示用户输入播放器参数,可以这样阅读:

Scanner scanner = new Scanner(System.in);
System.out.print("Enter Player Name:");
String nickName = scanner.nextLine();
System.out.print("Enter Player Type:");
String playerType = scanner.nextLine();
Player player = new Player(nickName, playerType);

当构造函数缺失时,java会创建一个默认构造函数,该构造函数只调用超类。定义显式构造函数时,java不会创建一个。因此,您可以在类中定义一个默认构造函数 e、 g

或者修改代码以调用u定义的构造函数

 Player player = new Player("nick","type");

当构造函数缺失时,java会创建一个默认构造函数,该构造函数只调用超类。定义显式构造函数时,java不会创建一个。因此,您可以在类中定义一个默认构造函数 e、 g

或者修改代码以调用u定义的构造函数

 Player player = new Player("nick","type");

您在主要方法中尝试的是创建一个新的Player对象。但问题是,您必须使用您实现的PlayerString的构造函数,但是您使用的构造函数没有任何参数Player

你应该使用空字符串,例如,如果你想得到一个玩家虚拟

Player player = new Player("","");
或者您应该为新的播放器实例提供您想要的名称和类型,例如

Player player = new Player("flashdrive2049","Player");

问候。

您在主要方法中尝试的是创建一个新的玩家对象。但问题是,您必须使用您实现的PlayerString的构造函数,但是您使用的构造函数没有任何参数Player

你应该使用空字符串,例如,如果你想得到一个玩家虚拟

Player player = new Player("","");
或者您应该为新的播放器实例提供您想要的名称和类型,例如

Player player = new Player("flashdrive2049","Player");

尊敬。

您正在尝试创建一个播放机,但没有传入昵称或播放机类型。您正在尝试创建一个播放机,但没有传入昵称或播放机类型。我要做的是启动程序,然后提示用户输入名称和尼克字符串。这不就是给玩家命名和分类我的昵称和玩家类型吗?找不到符号类扫描器。我做错什么了吗?您需要导入java.util.Scanner;我要做的是启动程序,然后提示用户输入名称和字符串。这不就是给玩家命名和分类我的昵称和玩家类型吗?找不到符号类扫描器。我做错什么了吗?您需要导入java.util.Scanner;如何使用参数化构造函数创建对象?这正是我希望做的。我要做的是启动程序,然后提示用户输入名称和nick字符串,在字符串中输入playerType和昵称之前,它们没有任何值。再说一次,我是100%绿色的,所以如果没有任何意义,告诉我:@JarandBoge。。然后首先从用户处读取值。将其存储在某个变量中。然后使用参数化构造函数,将这些变量作为
参数那并不难。这只是将字符串文本作为参数传递的方式。如何使用参数化构造函数创建对象?这正是我希望做的。我要做的是启动程序,然后提示用户输入名称和nick字符串,在字符串中输入playerType和昵称之前,它们没有任何值。再说一次,我是100%绿色的,所以如果没有任何意义,告诉我:@JarandBoge。。然后首先从用户处读取值。将其存储在某个变量中。然后使用参数化构造函数,将这些变量作为参数传递。那并不难。这只是将字符串文本作为参数传递的方式。