如何使扫描仪对象成为静态

时间:2014-09-18 15:14:50

标签: java object static global-variables java.util.scanner

我怎样才能引用从静态方法(比如main())全局定义的Scanner对象。也就是说,如何使Scanner对象成为静态。

计划(#以参考我的问题):

import java.util.Scanner;

class spidy {

    Scanner input = new Scanner(System.in);             /*DECLARING SCANNER OBJECT OUTSIDE MAIN METHOD i.e Static method */


    public static void main(String args[]) {

        System.out.println("Enter a number");
        int n = input.nextInt();
    }
}

错误: 非静态变量输入不能从静态内容中引用

3 个答案:

答案 0 :(得分:5)

如果我理解你的问题,那么你可以改变这个

Scanner input = new Scanner(System.in);

to(所有其他类都可见 - 你说全球

public static Scanner input = new Scanner(System.in);

或(当前班级可见 - 即main()

private static Scanner input = new Scanner(System.in);

答案 1 :(得分:3)

只需在static课程之前使用Scanner关键字。

示例:

static Scanner scan=new Scanner(System.in);

通过使用扫描对象,我们在代码中的任何地方引用

答案 2 :(得分:2)

我在解决静态初始化程序块问题时遇到了类似的疑问。并且有一个简单的解决方案。

写为:

static Scanner input = new Scanner(System.in);

而不是:

Scanner input = new Scanner(System.in);