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);
}
}
提示错误:
无法从静态上下文中,引用非静态变量!
祝楼主,天天向上!!
非静态方法可以直接调用静态变量并且给它赋值,但不可以在非静态方法中定义静态变量
随便举个例子给你吧
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);
}
}
一般来说,
静态变量就是一个全局变量。
为什么要在方法里边来赋值呢?
那就不要静态了
...这很难吗
你要说 静态方法 给 非静态变量赋值 这倒是不可能的