java静态变量只能由静态方法调用吗
时间: 2023-10-05 16:09:48 浏览: 87
不是的,静态变量可以被任何方法调用,包括静态方法和非静态方法。但是,静态变量的访问必须通过类名来访问,而非实例对象。例如:
```java
public class MyClass {
public static int myStaticVariable = 10;
public int myNonStaticVariable = 20;
public static void myStaticMethod() {
// 可以访问静态变量myStaticVariable和其他静态变量
int x = myStaticVariable;
// 不能直接访问非静态变量myNonStaticVariable
// int y = myNonStaticVariable; // 报错
}
public void myNonStaticMethod() {
// 可以访问静态变量myStaticVariable和其他静态变量
int x = myStaticVariable;
// 可以访问非静态变量myNonStaticVariable和其他非静态变量
int y = myNonStaticVariable;
}
}
// 访问静态变量
int a = MyClass.myStaticVariable;
// 访问非静态变量
MyClass obj = new MyClass();
int b = obj.myNonStaticVariable;
```