好的,所以我还是Java的新手,有些事情我不太了解。我在Sublime 3中使用了所有Java,并且不使用IDE,因此必须手动创建所有内容(这可能是为什么我无法使其正常工作的原因)。这是我的代码:
package charactername;
import java.util.*;
import java.io.*;
import java.util.Scanner.*;
import java.lang.Object.*;
public class UserNameInput {
public static void main(String[] args){
String playerNameF;
String playerNameL;
String checking;
boolean valid = true;
Scanner in = new Scanner(System.in);
while(valid){
System.out.println("Enter the first name of your character here: ");
playerNameF = in.nextLine();
System.out.println("Enter the last name of your character here:");
playerNameL = in.nextLine();
System.out.println("Your character name will be: \n" + playerNameF + " " + playerNameL + "\nIs this correct? y/n");
checking = in.nextLine();
if(checking.equals("n") || checking.equals("no")){
System.out.println("Please re-enter your information and try again.");
}else if(checking.equals("y") || checking.equals("yes")){
System.out.println("Good luck in game!");
break;
}else{
System.out.println("Sorry, I didn't quite understand your input. Please re-enter your information and try again.");
valid = true;
}
}
}
}
我可以使用playerNameL吗?完全分开的包中的playerNameF?
package gameintroduction.UserRegistration;
import charactername.*;
import java.util.*;
import java.io.*;
import java.util.Scanner.*;
public class GettingStarted {
public static void main(String[] args){
UserNameInput cName = new UserNameInput();
cName.playerNameF();
}
}
我正在尝试将其拉入此处,但它说该包装不存在。进口范围有限制吗? UserNameInput确实可以编译和运行,即使其难看!
答案 0 :(得分:0)
您在playerNameF
内声明main()
,这意味着此变量的作用域在main()
类的UserNameInput
内部。为了在其他类中使用它,将这些变量作为带有公共访问说明符的实例变量,如下所示。此外,不要在UserNameInput
类中使用main(),而要使用实例方法userInput()
并将所有您的main()内部的逻辑。
public class UserNameInput {
public String playerNameF;
public String playerNameL;
public String checking;
public void userInput(){
// your logic from main() comes here
}
}
现在您可以UserNameInput cName = new UserNameInput();cName.playerNameF;
了
现在,您可以从其他main()
调用它,如下所示:
public class GettingStarted {
public static void main(String[] args){
UserNameInput cName = new UserNameInput();
cName.userInput();
}
}
您还可以使用cName.playerNameF
或cName.playerNameL