我还是Java的新手,我在这里有以下代码: 包Final;
导入java.util.Scanner;
公共类职位{
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner MyPos = new Scanner(System.in);
System.out.println(" Enter Position: ");
String Pos = MyPos.nextLine();
System.out.println("Position: "+Pos);
Scanner MyMains = new Scanner(System.in);
System.out.println("Enter Mains: ");
String Mains1 = MyMains.nextLine();
System.out.println("Mains: "+Mains1);
Scanner WScore = new Scanner(System.in);
System.out.println("Enter Ward Score: ");
String score = WScore.nextLine();
System.out.println(" Average Ward Score is:"+score);
}
}
我很好奇,是否有一种方法可以将我的所有3台扫描仪导入到另一个类中,而不必从该类中移走所有实际代码?我试图将其移至的类是一个名为“ Player.java”的类。我的代码没有任何问题,但是总是很感谢其他输入,以帮助我理解和改进我的代码!
答案 0 :(得分:0)
每个变量都不需要新的扫描仪。 要做的要做的是在使用完扫描仪后将其关闭()。
您正在考虑Scanner本身与变量相关联-实际上,它与System.in相关联...
因此,每次您想要另一个变量时,只需执行以下操作即可:
Scanner sc = new Scanner(System.in);
String firstThing = sc.nextLine();
String secondThing = sc.nextLine();
sc.close(); // Do this when you're done storing input from System.in!
声明扫描仪后。我不确定为什么要将扫描仪传递给另一个班级。您可以轻松地将从扫描仪获取的变量传递到播放器对象中。
假设您的Player类中的构造函数接受字符串,就Player p1 = new Player(stringYouScanned);
进行操作。
或者,查找 getter和setter方法。然后,您可以执行以下操作:`p1.setPosition(4);' (您可以用扫描的int替换4,这样就可以了。)
如果出于某种原因要从Player内扫描输入,我只是初始化一个新的扫描仪,但请确保在完成输入处理后执行sc.close();
。