例1 public class HelloWorld
{
final static int i=5;
public static void main(String args[])
{
int j=1;
j=i+j;              
System.out.println("HelloWorld!");
System.out.println(i);
System.out.println(j);
}
}
有人说凡是在大括号里声明的变量,出了这个大括号就没人认识它了,我也试过了,看下面例子
例2 public class HelloWorld
{
final static int i=5;
public static void main(String args[])
{

System.out.println("HelloWorld!");
System.out.println(i);

}
}
例2 编译时,编译器报错,说找不到变量i
但是例1却可以通过编译并执行出j=6.
请问这是为什么?(例1的i为什么被认出来?)

解决方案 »

  1.   

    例2写错了
    public class HelloWorld
    {
    final static int i=5;
    public static void main(String args[])
    {
    i=i+5;
    System.out.println("HelloWorld!");
    System.out.println(i);

    }
    }
    应该是这样的
      

  2.   

    final 声明的常量值是不能修改的
      

  3.   


     申明常量 public final static 类型 常量名   楼主这个未必是在申明常量?
      

  4.   

    可以吗?不行吧,他把i申明成了final类型,不能修改其值·
    而下面对其做了加法,这会报错
      

  5.   

    eclipse 可以编译而且出结果5