java编小游戏时编译错误,说是静态上下文无法访问非静态变量,咋整?

源代码在电脑里,不方便放出来,求大侠说说原理和如何避免就好,谢谢了

5个回答

静态方法里面不能访问类中的非静态成员变量

要么先new出相应的对象,再对象.变量,要么将变量设置为static。静态方法里面不能访问类中的非静态成员变量。

 两个办法,静态方法定义成非静态方法
或者在调用非静态变量的时候new一个。
比如如下代码:
class A
{
int x = 1;
static void foo()
{
x = 2;
}
}
编译则出现这个错误,修改方法1:
class A
{
int x = 1;
void foo() //去掉static
{
x = 2;
}
}
修改方法2
class A
{
int x = 1;
static void foo()
{
A a = new A();
a.x = 2;
}
}

static class A {
....

}

new一个,要不将变量设置成静态的

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问