求教高手们~在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
可以写个带参数的构造方法啊~~ 然后再静态方法里调用就可以赋值了啊~
Warning: Invalid argument supplied for foreach() in /www/wwwroot/aolonic.com/skin/templets/default/contents.html on line 45
相似回答