【发布时间】:2019-08-07 19:00:03
【问题描述】:
假设我有 3 个班级 A、B、C 和我的 Main。 B 扩展 A。 我想在所有这些中使用扫描仪,包括我的主要。 我应该通过继承移动扫描仪还是应该使用静态并在我的主文件中声明我的扫描仪?
我试图看这里,但没有得到更好的明确答案: 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类。
标签: java inheritance static