JAVA中怎么通过非静态方法给一个静态变量赋值?

2024-11-27 22:32:19
推荐回答(4个)
回答(1):

public class staticTest1
{
public static int java;
public void setJava(int java)
{
this.java = java;
}

public static void main(String args[])
{
staticTest st = new staticTest();
st.setJava(2009);
System.out.println(st.java);

}
}

如你所说,这样是完全能办到的,及:

静态方法给非静态变量赋值!

下面这个程序就不能编译通过!!

public class staticTest2
{

public int c;

public static void setC(int c)
{
this.c = c;
}

public static void main(String args[])
{
staticTest st = new staticTest();
st.setC(2000);
System.out.println(st.c);

}
}

提示错误:

无法从静态上下文中,引用非静态变量!

祝楼主,天天向上!!

回答(2):

非静态方法可以直接调用静态变量并且给它赋值,但不可以在非静态方法中定义静态变量
随便举个例子给你吧
class Test{
private static int c;
private static String name;
public void getInfo(){
//static int bb =10; //错误的写法。
c = 10;
name ="我是静态变量";
System.out.println(c+ " "+name);
}
}

回答(3):

一般来说,
静态变量就是一个全局变量。
为什么要在方法里边来赋值呢?
那就不要静态了

回答(4):

...这很难吗

你要说 静态方法 给 非静态变量赋值 这倒是不可能的