假设我有三个类 A、B、C 和我的 Main。
B 扩展了 A。
我想在它们所有的类中(包括主类)使用扫描器。
我应该通过继承移动扫描器,还是应该使用静态并在我的 Main 中声明我的扫描器?
我尝试在这里查找答案,但没有得到明确的答案哪种方法更好: Is there any way I can use a Scanner object in a different class?
我尝试在这里查找答案,但没有得到明确的答案哪种方法更好: Is there any way I can use a Scanner object in a different class?
public class Main {
public static Scanner staticScanner = new Scanner (System.in);
public static void main(String[] args) {
Scanner sc = new Scanner (System.in);
A a = new A(sc);
C c = new C();
c.cDoSomething(sc);
sc.close();
}
public class A {
private Scanner sc;
public A (Scanner sc){
this.sc = sc;
}
public void aDoSomething(){
B b = new B();
b.bDoSomething(sc);
}
public class B extends A {
public void bDoSomething(Scanner sc){
}
public class C {
public void cDoSomething(Scanner sc){
}
就如我之前所说,我想了解哪种方法更好、更正确。 是在我的主类中调用 staticScanner 还是根据需要在不同的类之间移动 Scanner sc?
new Scanner(System.in)
的使用限制在表示层/类中,因此可能会为其设计一个单例模式。或者您可以查看Console
类,该类专门用于这些用例。 - Luiggi Mendoza