public class Test1 { final int a = 6;
final String str;
final int c;
final static double d;
{str = "Hello";}//这里{}去掉就会报错,是什么原因

Test1() {
c = 4;
}
static {
d = 5.6;
}

解决方案 »

  1.   

    final修饰符,就是说,这个变量的值是不能改变的,是个常量,跟C++中的const是个同样的概念
      

  2.   

    final修饰符的变量只能被初始化一次,如果没有在声明时初始化,则只能在构造器里面初始化,比如这样:public class Test1 { final int a = 6;
    final String str;
    final int c;
    final static double d; Test1() {
    c = 4;
                    str = "Hello";
    }
    static {
    d = 5.6;
    }
    }
      

  3.   


    +1,不去掉花括号就是initialization block,相当于在构造方法中初始化了
      

  4.   

    final修饰符的变量只能被初始化一次,如果没有在声明时初始化,则只能在构造器里面初始化,比如这样:
    Java codepublic class Test1 {    final int a = 6;
        final String str;
        final int c;
        final static double d;    Test1() {
            c = 4;
                    str = "Hello";
        }
        static {
            d = 5.6;
        }
    }
      

  5.   

    final是最高级的,不可以修改的!
      

  6.   

    被fina修饰的变量为常量,所以在不能再改变其值
      

  7.   

    你问的问题和final没有关系,如果你不加{},去掉final也会出错的。。初始化块就是需要用{}来包围的
      

  8.   

    final 变量的初始化问题。比如说只能在代码块(也就是{}里)或构造函数中。
      

  9.   

    final 就是最终的,不能改变的。一般在java中是 public static final ** **="**"; 使用的时候这个值就不会改变了。比如用到数据库连接地址,什么的。
      

  10.   

    final是不可改变的,只有在方法里改变
      

  11.   

    final 修饰变量,表示变量不可变