【问题标题】:initialize global variable in method在方法中初始化全局变量
【发布时间】:2022-10-20 08:36:07
【问题描述】:
static void compare(int a) {
        Scanner sc= new Scanner(System.in);
        int b= sc.nextInt();

我想将 int b 设为全局变量。
在 Python 中,我可以在这样的函数中初始化全局变量

def compare():
    global b
    b = 15

但是在java中添加静态 static int b= sc.nextInt(); 出错,应该如何做到这一点?

【问题讨论】:

    标签: java static global-variables


    【解决方案1】:

    如果你想让一些变量成为全局变量,那么你需要在方法之外声明变量。在java中,你不能在方法内部声明静态变量(即使它是静态的),因为在方法内部所有变量都是局部变量,在这个方法之外不存在,这就是为什么它们不能是静态的。

    import java.util.*;
    
    public class GlobalVariable{
        static int b;
        public static void main(String...args){
            GlobalVariable.compare(1);
            System.out.println(b);
        }
    
        static void compare(int a){
            Scanner sc = new Scanner(System.in);
            b = sc.nextInt();
        }
    }
    

    【讨论】:

      【解决方案2】:

      据我所知,你不能这样做。 您必须在方法之外声明 b 。

      static int b ;
      

      然后在方法内部初始化它:

      b= sc.nextInt();
      

      有关 JAVA 中的全局变量以及何时使用/不使用它们的更多详细信息,请参阅:Global variables in Java

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多