String 如何从不同于最初声明的方法调用字符串

String 如何从不同于最初声明的方法调用字符串,string,methods,String,Methods,我想用java写一个俄勒冈州的线索类型的故事。在后面的一种方法中,要求您输入您的姓名。我用这个来得到这个名字: Scanner keys = new Scanner(System.in); String name = keys.nextLine(); 我想继续提到球员的名字,他们在其他方法中输入的名字,我不确定如何称呼它。感谢您的帮助。当您申报时 String name = keys.nextLine(); 您正在该方法的范围内创建一个字符串。正如您可能注意到的,一旦方法完成,它就不再可访问

我想用java写一个俄勒冈州的线索类型的故事。在后面的一种方法中,要求您输入您的姓名。我用这个来得到这个名字:

Scanner keys = new Scanner(System.in);
String name = keys.nextLine();
我想继续提到球员的名字,他们在其他方法中输入的名字,我不确定如何称呼它。感谢您的帮助。

当您申报时

String name = keys.nextLine();
您正在该方法的范围内创建一个字符串。正如您可能注意到的,一旦方法完成,它就不再可访问。与其将字符名存储在该方法的局部变量中,不如将其保存到外部作用域中的变量中

在Java的面向对象设计中,理想的放置位置是相关类的实例变量。假设你有一门叫做“游戏”的大师课。此类的实例将表示正在运行的游戏,具有与游戏交互的方法,并保存有关游戏的数据。您可以将游戏中的实例变量声明为:

String playerName;
如果该方法在游戏中,那么您只需使用以下代码:

Scanner keys = new Scanner(System.in);
this.playerName = keys.nextLine();
由于您正在将名称分配给存在于方法范围之外的变量,因此稍后您仍可以访问该变量。实现这一点的确切方法取决于您如何构建类

根据您的代码结构,一个比上述解决方案更好的通用解决方案是让该方法返回字符串,而不是设置字符串。例如:

String getPlayerName() {
    Scanner keys = new Scanner(System.in);
    return keys.nextLine();
}

这样的方法将返回一个包含名称的字符串,这将允许您在方法之外使用它。

您的其余代码是什么样子的?