Java 如何将用户输入保存为类实例的名称?
我试图使用用户输入的字符串作为类实例的名称。在本例中,我试图使用用户输入来命名类实例Java 如何将用户输入保存为类实例的名称?,java,class,input,Java,Class,Input,我试图使用用户输入的字符串作为类实例的名称。在本例中,我试图使用用户输入来命名类实例player1。但是,它不允许我这样做,因为当我将player1设置为players类的实例时,它已经被定义了 System.out.println("Enter your name, player1: "); Scanner input = new Scanner(System.in); //the user enters their name String player1 = input.next();
player1
。但是,它不允许我这样做,因为当我将player1
设置为players
类的实例时,它已经被定义了
System.out.println("Enter your name, player1: ");
Scanner input = new Scanner(System.in);
//the user enters their name
String player1 = input.next();
players player1 = new players();
基本上,您要做的是选择一个有意义的变量名。就像在代数中一样,你不使用函数的输入作为变量名。但是,您确实将输入视为给定变量名的替换
您可以为
player1
选择一个更有意义的名称。如果您希望用户输入的是玩家的名字,那么作为字符串的player1
应该重命名为playerName
,然后player1=新玩家()代码>可以保留
它是非典型的,通常表示期望用户键入一些内容并定义一个变量名的设计很差。基本上,您要做的是选择一个有意义的变量名。就像在代数中一样,你不使用函数的输入作为变量名。但是,您确实将输入视为给定变量名的替换
您可以为player1
选择一个更有意义的名称。如果您希望用户输入的是玩家的名字,那么作为字符串的player1
应该重命名为playerName
,然后player1=新玩家()代码>可以保留
它是非典型的,通常表示期望用户键入某些内容并定义一个变量名的设计很差。如果不指出明显的变量名,我将采用不同的方法回答
也许您希望以面向对象的方式获取一个输入并实际将其设置为播放器的名称。显然,您有一个类player
,那么为什么不在构造函数中加入一个name
参数呢
public class Player {
private String name;
public Player(String name){
this.name = name;
}
public String getName(){
return name;
}
}
然后,当你得到输入时,你就这样做了
String playerName = input.nextLine();
Player player1 = new Player(playerName);
现在,当您创建多个播放器
时,每个播放器都有一个不同的名称
您还应该遵循Java命名约定。类名以大写字母开头
更新
您需要为每个实例创建一个新的播放器
String playerName = input.nextLine();
Player player1 = new Player(playerName);
playerName = input.nextLine();
Player player2 = new Player(playerName);
playerName = input.nextLine();
Player player3 = new Player(playerName);
playerName = input.nextLine();
Player player4 = new Player(playerName);
在不指出明显的变量名的情况下,我将采用不同的方法来回答
也许您希望以面向对象的方式获取一个输入并实际将其设置为播放器的名称。显然,您有一个类player
,那么为什么不在构造函数中加入一个name
参数呢
public class Player {
private String name;
public Player(String name){
this.name = name;
}
public String getName(){
return name;
}
}
然后,当你得到输入时,你就这样做了
String playerName = input.nextLine();
Player player1 = new Player(playerName);
现在,当您创建多个播放器
时,每个播放器都有一个不同的名称
您还应该遵循Java命名约定。类名以大写字母开头
更新
您需要为每个实例创建一个新的播放器
String playerName = input.nextLine();
Player player1 = new Player(playerName);
playerName = input.nextLine();
Player player2 = new Player(playerName);
playerName = input.nextLine();
Player player3 = new Player(playerName);
playerName = input.nextLine();
Player player4 = new Player(playerName);
“如果您希望用户输入的是一个玩家的名字,那么作为字符串的玩家应该被称为playerName,然后players player1=new players();可以保留。”---是的,我喜欢这样,但是如何将“playerName”和“player1”设置为相等?“这是非典型的,通常表示期望用户键入某个内容并定义一个变量名的设计很差。”——那么,如果您希望玩家输入自己的名字(例如Mark或Andy)来替换“player1”,您会怎么做“?@user3133300我不会的!实际上,我只是将用户的输入存储在一个变量中,就像您在这里所做的那样。用户输入是字符串输入,所以它进入您的字符串。然后,变量player1
中存储了一个players
的实例。如果您希望它们相等,则它们需要具有相同的类型或彼此可分配。“也许如果您希望用户输入是玩家的名称,那么作为字符串的玩家应该称为playerName,然后playern1=new players();可以保留。”---是的,我喜欢这样,但如何设置“playerName”和“playern1”“彼此相等?”这是一种非典型现象,通常表示期望用户键入某个内容并定义一个变量名的设计很差。”----那么,如果您希望玩家输入自己的名称(例如Mark或Andy)以替换“player1”,您会怎么做?@user3133300我不会!实际上,我只是将用户的输入存储在一个变量中,就像您在这里所做的那样。用户输入是字符串输入,所以它进入您的字符串。然后,变量player1
中存储了一个players
的实例。如果你想让它们相等,它们必须是同一类型的,或者可以相互转让。我认为关于“指出明显的”的说法有点刺痛。但也许不是。不管怎样,+1表示提及命名约定。不工作是什么意思?我不明白。对于每个输入,您需要创建一个新的播放器。看到我的更新了吗?拍啊,它还是不起作用。我不知道为什么,这是有道理的,但出于某种原因,它仍然不起作用。我想我可能会做一个新的职位。但是无论如何,谢谢你的帮助;你教过我构造函数:)如果你想打印名字,你需要使用player1.getName()对不起;我把支票放回原处。谢谢你教我关于建设者的知识;尽管问题还没有完全解决,我还是向你学习了!我认为关于“指出明显的”的说法有点刺伤人。但也许不是。不管怎样,+1表示提及命名约定。不工作是什么意思?我不明白。对于每个输入,您需要创建一个新的播放器。看到我的更新了吗?拍啊,它还是不起作用。我不知道为什么,这是有道理的,但出于某种原因,它仍然不起作用。我想我可能会做一个新的职位。但是无论如何,谢谢你的帮助;你教过我构造器:)如果你想打印名字,你需要使用<