当前位置 博文首页 > 墨辰柒的博客:final变量初始化

    墨辰柒的博客:final变量初始化

    作者:[db:作者] 时间:2021-08-02 21:40

    final变量初始化

    package finalquestion;
    /*
    1、Final变量可以在声明时初始化,也可以在构造方法/代码块中初始化。不能在成员方法中初始化。否则会编译错误。
    2、Final静态变量只能在声明时或者静态代码块中初始化
     */
    public class FinalQuestion01 {
        //可以在声明时初始化 private final int id;
        private final int id;
    
        //也可以在代码块中初始化
        {
            this.id = 1;
        }
        //也可以在构造方法中初始化
        public FinalQuestion01(int id) {
            this.id = id;
        }
        //无法在成员变量中初始化,这里会编译错误
        public void method() {
            this.id = 1;
        }
        public void updateId(int newId) {
            //编译错误:Cannot assign a value to final variable 'id'
            id = newId;
        }
        //-----------------静态变量------------------//
        //初始化方式一,在定义类变量时直接赋值
        public final static int id_1 = 3;
        //初始化方式二,在方法块中赋值
        public final static int id_2 ;
        static {
            id_2=10;
        }
        //这样直接编译错误,必须在静态代码块中,因为静态的方法和成员变量在对象创建时就实现了
        {
            id_2=10;
        }
    }
    
    cs
    下一篇:没有了