Java final 关键字用法

更多 Java 基础知识方面的文章,请参见文集《Java 基础知识》


  • final 类:不能被继承
  • final 方法:不能被 override
    • main 方法也可以被 final 修饰
  • final 变量:不能被修改

final 变量的初始化:

  • 声明时初始化:
public class Final_Test {
    public final int i = 10;

    public Final_Test() {
    }
}
  • 在构造方法里初始化
public class Final_Test {
    public final int i;

    public Final_Test() {
        i = 10;
    }
}
  • 以上两种方式,必须选择一种,但是不能同时使用,例如以下代码会出现编译错误:
public class Final_Test {
    public final int i = 10;

    public Final_Test() {
        i = 10;
    }
}
  • 不能在其他方法里初始化或赋值,例如以下代码会出现编译错误:
public class Final_Test {
    public final int i = 10;

    public Final_Test() {
    }

    public void f() {
        i = 20;
    }
}
  • 如果为 static final 变量,则不能在构造方法里初始化,只能在 声明时初始化 或者 在 static 代码块中初始化,例如:
public class Final_Test {
    public static final int i;

    static {
        i = 10;
    }

    public Final_Test() {
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容