求高手解答
public class test{
int a=123;
final int b=11111;
public static void main(String[] args){
int c=-123;
System.out.println("a输出的值是:"+a);
System.out.println("b输出的值是:"+b);
System.out.println("c输出的值是:"+c);
}
}
报错test.java:6: 无法从静态上下文中引用非静态 变量 a
System.out.println("a输出的值是:"+a);
^
test.java:7: 无法从静态上下文中引用非静态 变量 b
System.out.println("b输出的值是:"+b);
^
2 错误
为什么全局变量必须是静态变量,我要如何让全局变量成为实例变量呢??求高手解答,谢谢。。
------解决方案--------------------int a=123;
final int b=11111;
把每个变量都定义成static的就可以了。
改成static int a =123;
static final int b=11111;
------解决方案--------------------java里的变量要么是静态变量(属于某个类),要么是实例变量(属于某个对象)。
如果要实现全局变量,可以把变量改为静态的:
public class test{
static int a=123;
static final int b=11111;
public static void main(String[] args){
int c=-123;
test t=new test();
System.out.println("a输出的值是:"+a);
System.out.println("b输出的值是:"+b);
System.out.println("c输出的值是:"+c);
}
}
或者使用单例模式构造实例。
------解决方案--------------------或者
改成
test t = new test();
System.out.println("a输出的值是:"+t.a);
System.out.println("b输出的值是:"+t.b);