【发布时间】:2017-08-14 11:20:32
【问题描述】:
在静态方法中将变量声明为静态时会出错(编译时错误)。 我的代码在这里:-
public class MainStatic {
public static void main(String[] args) {
System.out.println("Value of static variable is"+print(10));
}
public static void print(int number ) {
static int x = number;
++x;
System.out.println(x);
}
}
我收到编译时错误:- “参数 x 的非法修饰符;只允许使用 final”。 由于静态方法不依赖于类的实例,那么为什么我不能在静态方法中声明静态变量? 但是如果我在方法中声明类内部的变量,它是可以访问的?
【问题讨论】:
-
那里不需要静态。你呢?
-
在方法内部,范围修饰符(
static、public等)不可用。范围始终是方法。 -
你的问题是什么?
-
我想知道为什么静态方法中不允许静态变量声明?
-
@shankarDayalupadhyay Java 中的静态基本上意味着“属于一个类(而不是一个实例)”。因此,属于该类的变量应该直接在类主体内声明,而不是在方法内。 Java 不支持静态局部变量。
标签: java static static-methods