java中有公共/全局变量吗?
我正在编写一个使用java.util.Scanner获取用户输入的程序。这将用于多种方法 有没有可能java中有公共/全局变量吗?,java,Java,我正在编写一个使用java.util.Scanner获取用户输入的程序。这将用于多种方法 有没有可能 public class Main { Scanner input = new Scanner(System.in); public static void main(String[] args) { ... String mainInput = input.nextLine(); ... }
public class Main {
Scanner input = new Scanner(System.in);
public static void main(String[] args) {
...
String mainInput = input.nextLine();
...
}
private static void add(){
...
String addInput = input.nextLine();
...
}
}
或者我需要扫描仪输入=新扫描仪(System.in)在这两个方面
//方法
public class Main {
public static void main(String[] args) {
...
Scanner input = new Scanner(System.in);
String mainInput = input.nextLine();
...
}
private static void add(){
...
Scanner input = new Scanner(System.in);
String addInput = input.nextLine();
...
}
}
我计划采用3-4种其他方法
编辑:
在我的计划中,我遵循了第一条。我收到一个错误:无法从静态上下文引用非静态字段“输入”
回答
static Scanner input = new Scanner(System.in);
如果您立即读取输入,第一个方法将是我的选择。这当然是可能的。或者选项3)让
add()
方法接受Scanner作为参数,如private static void add(Scanner sc){…String addInput=sc.nextLine();…}
,所以我可以在main方法中创建一次,并将其传递给add
方法,如main。。。{Scanner input=new Scanner(System.in);…add(input);…}
@luk2302是否可以创建类的静态对象
?例如,Scanner static sc=new Scanner(…)
它无论如何都不工作@XO56您能澄清一下“静态对象”和“静态变量”是什么意思吗?顺便说一句,字段修饰符(如static、private、volatile等)出现在声明的类型之前,因此它应该是static Scanner sc
“但是static Scanner sc=new Scanner(System.in);
给出编译器错误”,这是因为static
中存在键入错误。Java区分大小写,因此静态!=<代码>静态
。关于第1种方法与第2种方法,IMO第1种方法更好,因为它不会创建多个扫描仪来处理系统。io
,在某些情况下(由于错误或应用IDE建议),稍后可能会有人决定关闭,这也将关闭系统。io
阻止它在应用程序的其余部分使用(比如当我们再次想要使用add()
方法时)。但我可能会使用第一条评论中的第三个选项。