final关键字

    xiaoxiao2021-03-25  86

    final修饰的成员变量一旦有了初始值,就不能被重新赋值,而且必须由程序员显示地指定初始值。final修饰的引用类型变量也不能被重新赋值,但可以改变引用类型变量锁引用对象的内容,例如: public static void main(String[] args) { final int[] iArr = {5, 6, 12, 9}; // 对数组元素进行排序,合法 Arrays.sort(iArr); // 对数组或者数组元素赋值,非法 iArr[2] = 8; iArr = null final Person p = new Person(45); // 改变age实例变量,合法 p.setAge(23); // 对p重新赋值,非法 p = null; }

    对于一个final变量,只要满足三个条件,这个final就相当于一个直接量: 1. 使用final修饰符修饰 2. 在定义该final变量时指定了初始值 3. 该初始值可以在编译时就被确定下来

    public static void main(String[] args) { // 下面定义了4个final“宏变量” final int a = 5 + 2; final double b = 1.2 / 3; final String str = "疯狂" + "Java"; final String book = "疯狂Java讲义:" + 99.0; // 下面的book2变量的值因为调用了方法,所以无法在编译时被确定下来 final String book2 = "疯狂Java讲义:" + String.valueOf(99.0); System.out.println(book == "疯狂Java讲义:99.0");// true System.out.println(book2 == "疯狂Java讲义:99.0");// false } final修饰的方法不可被重写。final修饰的类不可以有子类。
    转载请注明原文地址: https://ju.6miu.com/read-40383.html

    最新回复(0)