求教高手们~在Java里 静态方法可以改变全局变量么?

比如
public class A{

private int g;

private int returnG(){
return g;
}

public static void addInt(int start, int step){
g = start;
g = g + step;

//这里 我想把start的值赋给g 提示说static方法里不能这么做,我试着调用return方法但是也不可以
}
}

有没有方法在不改变g和return方法属性的情况下完成这个程序(就是不加static)?

感恩><

第1个回答  2010-03-09
在静态方法中去调用非静态变量的是不可以的啊!因为在java初始化时 会先去初始化静态的成员函数,再去初始化非静态的。可以将该方法改成非静态的,然后在main方法去生成A的对象 再调用该方法
第2个回答  2018-08-29

你为什么要在 addint 这个方法里面加static标识?

既然你说不加static ,那删static可以吗?删掉就什么都解决了

全部都改成对象的,然后使用对象调用即可

另外 returnG 这个没有意义啊,构造一个方法,且无输入值,还立即返回g 有何意义?

修改后:

public class A {
private int g;
private int returnG(){
return g;
}
public  void addInt(int start, int step){

int g = start;
g = g + step;
}
public static void main(String[] args) {
A az = new A();
az.returnG();
az.addInt(2, 5);
}
}

第3个回答  2010-03-09
静态方法中怎么可以访问非静态成员,别说修改值了,就是访问都不可能。如果非要在静态方法中访问非静态成员,就只有用对象去访问。
第4个回答  2010-03-09
先生成A的对象,再调用静态方法。本回答被提问者采纳
第5个回答  2010-03-09
可以写个带参数的构造方法啊~~ 然后再静态方法里调用就可以赋值了啊~
相似回答