【问题标题】:how to make scanner object as static如何将扫描仪对象设为静态
【发布时间】:2014-09-18 15:14:50
【问题描述】:

如何引用从静态方法全局定义的 Scanner 对象(比如 main() )。也就是说,如何将 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();
    }
}

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

【问题讨论】:

  • 声明static Scanner input = new Scanner(System.in);
  • 请注意,object 不是 static变量是(或方法或类)。

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


【解决方案1】:

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

Scanner input = new Scanner(System.in);

to(对所有其他类可见 - 你说 global

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

或(对当前类可见 - 任何其他静态方法(在您的情况下为main()))

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

【讨论】:

    【解决方案2】:

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

    写成:

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

    代替:

    Scanner input = new Scanner(System.in);
    

    【讨论】:

      【解决方案3】:

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

      例子:

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

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

      【讨论】:

        猜你喜欢
        • 2013-11-09
        • 2014-10-26
        • 1970-01-01
        • 2014-05-20
        • 2015-07-18
        • 1970-01-01
        • 2021-05-18
        • 2015-10-02
        • 2017-06-02
        相关资源
        最近更新 更多