将这些扫描仪导入另一个类?

时间:2019-11-25 18:18:02

标签: java string java.util.scanner

我还是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”的类。我的代码没有任何问题,但是总是很感谢其他输入,以帮助我理解和改进我的代码!

1 个答案:

答案 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();