Java 我需要使用一个从主类到我创建的另一个类的变量
我正在用java创建一个基于文本的游戏。在这个游戏中,我创建了一个名为“name”的变量,这个变量有一个用户输入的字符串Java 我需要使用一个从主类到我创建的另一个类的变量,java,class,variables,Java,Class,Variables,我正在用java创建一个基于文本的游戏。在这个游戏中,我创建了一个名为“name”的变量,这个变量有一个用户输入的字符串 System.out.println("You chose to play, welcome to the game!"); System.out.println("You can choose your name now!"); System.out.print("My name is -->
System.out.println("You chose to play, welcome to the game!");
System.out.println("You can choose your name now!");
System.out.print("My name is --> ");
input.nextLine();
String name = input.nextLine();
System.out.println("Are you sure your name is " + name + "?");
System.out.println("1. Yes, that is my name. Time to move on...");
System.out.println("2. No, that isn't my name...");
int u = 2;
u = input.nextInt();
while (u == 2){
System.out.println("Then let's change your name!");
System.out.println("What is your new name?");
input.nextLine();
name = input.nextLine();
System.out.println("Are you sure your name is " + name + "?");
System.out.println("1. Yes, that is my name. Time to move on...");
System.out.println("2. No, that isn't my name...");
u = input.nextInt();
}
所以我想在字符类中使用变量“name”,如下所示
class Character{
public static void full_stats(){
System.out.println("This is your name" + name);
}
}
向方法添加一个参数
class Character{
public static void full_stats(String name){
System.out.println("This is your name" + name);
}
}
按你现在的方式,你不能 有两种方法我可以在脑海里想出来: 将名称声明为类级别变量:
static String name;
public static void main(String[]args ) {
//.. other code
name = setYourName();
//..
Character.full_stats();
}
class Character{
public static void full_stats(){
System.out.println("This is your name" + Main.name);
}
}
更好的方法是将名称作为参数传递:
class Character{
public static void full_stats(String name){
System.out.println("This is your name" + name);
}
}
public static void main(String[]args ) {
//.. other code
String name = setYourName();
//..
Character.full_stats(name);
}
不过,我建议在主方法/类中保留尽可能少的代码。它只是一个入口点,而不是整个应用程序
另外:遵循标准命名约定将使您的代码更容易维护/被未编写代码的人遵循。正确的设计是将
名称
设置为字符
字段。然后在主类中创建Character
的实例,并通过相应的setter为name
字段提供一个值,将用户输入作为参数传递给setter。在Character类中创建一个name字段。然后将名称传递到字符构造函数中。您可能想将您的类重命名为GameChar或其他名称,因为如果您想使用java中的普通字符类,这可能会导致奇怪的错误。非常感谢,这回答了我的问题。抱歉这么晚才回复,我把问题放在溢出上,离开了电脑,因为我必须去某个地方。@the_Red_Baron如果这回答了你的问题,你能把答案标记为“已接受”吗?