【问题标题】: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。