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 错误
为什么全局变量必须是静态变量,我要如何让全局变量成为实例变量呢??求高手解答,谢谢。。

解决方案 »

  1.   

    int a=123;
      final int b=11111;把每个变量都定义成static的就可以了。
    改成static int a =123;
     static final int b=11111;
      

  2.   

    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);}
    }
    或者使用单例模式构造实例。
      

  3.   

    或者
    改成
    test t = new test();
    System.out.println("a输出的值是:"+t.a);
      System.out.println("b输出的值是:"+t.b);
      

  4.   

    test t = new test();
    System.out.println("a输出的值是:"+t.a);
      System.out.println("b输出的值是:"+t.b);
    是如何改,我是初学者,麻烦您再说说如何这样更改?
    还有就是类和对象如何区别?