class Test{

private final int i=10;
public static void main(String args[]){
 
System.out.println(i);

Test a=new Test();
a.meth();

}

void meth(){
System.out.println();
}

}
我改了一下,如下
class Test{

private final int i=10;
public static void main(String args[]){
 
//System.out.println(i);

Test a=new Test();
a.meth();

}

void meth(){
System.out.println(i);
}

}
是不是static 访问的问题?static 方法访问一个实例变量有错误???有点混乱了,望高手指正.

解决方案 »

  1.   

    private static final int i=10;
      

  2.   

    private final int i=10;
    i是实例变量,必须与Test对象的实例一起用,又因i是private的,不能直接访问
      

  3.   

    修改下private static final int i=10;因为用final修饰符说明常量时要注意
    1.需要说明常量的数据类型;
    2.同时指出常量的具体取值;
    3.因为类对象的常量成员数值一定,为节省空间要被申明为static;
    同时用private修饰的属性及方法要用自身的类的方法来调用实现对该属性的修改,此例中你没有用到方法进行调用修改,因而不能访问>