它具有static和final的双重含义
首先,static表示它是静态的,也就是说它不属于某个对象,只属于方法本身
final表示它的值不能够再改变,就像是c语言里的全局变量一样

解决方案 »

  1.   

    只属于方法本身
    ->错
    多个实例公用一个为static
      

  2.   

    interface InterfaceExample1
    {
    int i=4;
    int k=5;
    void func1();

    int func2(int x);
    }public class InterfaceClass1 implements InterfaceExample1
    {
    int j;
    public void func1()
    {
    System.out.println("func1= "+i);
    }
    public int func2(int i)
    {
    System.out.println("func2= "+i);
    return i;
    }

    public static void main(String[] args)
    {
    InterfaceClass1 c=new InterfaceClass1();
    c.func1();
    j=c.func2(k);//这一句为什么不行????
    System.out.println(c.func2(k));
    }
    }
      

  3.   

    btut2004(《电子产品世界》程序员csdn:[email protected]):
    你好好看看书吧,能用对象调用static变量吗?
      

  4.   

    btut2004(《电子产品世界》程序员csdn:[email protected]):
    不好意思,是我错了
    请大哥原谅!!!
      

  5.   

    int func2(int x)应该有返回值的啊,可是为什么用j=c.func2(k);会出现非静态变量不能引用静态上下文呢?请高手指点
      

  6.   

    我觉得是你的j定义的位置和你的j被付值的位置的问题。
       interface InterfaceExample1
    {
    int i=4;
    int k=5;
    void func1();

    int func2(int x);
    }public class Test implements InterfaceExample1
    {

    public void func1()
    {
    System.out.println("func1= "+i);
    }
    public int func2(int i)
    {
    System.out.println("func2= "+i);
    return i;
    }

    public static void main(String[] args)
    {
    int j;
    Test c=new Test();
    c.func1();
    j=c.func2(k);
    System.out.println(c.func2(k));
    }
    }
      如果这样的话 你再尝试下 是不是正确了呢。
      

  7.   

    interface InterfaceExample1
    {
    int i=4;
    int k=5;
    void func1();

    int func2(int x);
    }public class Test implements InterfaceExample1
    {
    static int j; public void func1()
    {
    System.out.println("func1= "+i);
    }
    public int func2(int i)
    {
    System.out.println("func2= "+i);
    return i;
    }

    public static void main(String[] args)
    {
            Test c=new Test();
    c.func1();
    j=c.func2(k);
    System.out.println(c.func2(k));
    }
    }
       这样也能做到类型的统一。
      

  8.   

    你在一个静态方法public static void main(String[] args)中引用一个非静态的变量j;当然不行了
      

  9.   

    int func2(int x)应该有返回值的啊,可是为什么用j=c.func2(k);会出现非静态变量不能引用静态上下文呢?请高手指点
    ----------
    你改成c.j=c.func2(k)试试,这句是定义再Static方法中的,Static方法是可以根据
    类名.静态方法  进行访问,变量j是实例变量,就是说必须要有类的实例进行引用才行的。