4.5 final修饰符

在Java中,final修饰符可以修饰类、属性和方法,final有“最终”、“不可更改”的含义,所以在使用final关键字时需要注意以下几点:

  • 使用final修饰类,则该类就为最终类,最终类不能被继承。

  • 使用final修饰方法,则该方法不能被子类覆盖。

  • 使用final修饰变量的变量是常量,常量不可修改。

1. final修饰类

使用final修饰类,则该类就为最终类,最终类不能被继承。

public final class Person {
    
}

4.5 final修饰符_第1张图片

由abstract修饰的类是需要被继承的,而由final修饰的类是不能被继承的,所以final和abstract不能在定义类时同时使用。

2. final修饰方法

使用final修饰方法,则该方法不能被子类覆盖。

public class Person {

    public final void hello(){
        System.out.println("hello");
    }

}

4.5 final修饰符_第2张图片

3. final修饰变量

使用final修饰变量,可以修饰基本类型和引用类型。

基本类型,表示基本变量数据值不能改变,只能一次赋值以后不能被修改。

引用类型,引用类型地址值不能再改变,即不能再次执行new操作;引用类型的值可以改变。

public class TestDemo {
    @Test
    public void test(){
        //final修饰基本类型,只能一次赋值以后不能被修改
        final int num;
        num = 1;        //等价于final int num = 1;
        System.out.println(num);
        // num = 2; 异常

        //final修饰引用类型,引用类型地址值不能再改变,即不能再次执行new操作;引用类型的值可以改变。
        final int[] nums = new int[2];
        nums[0] = 1;
        nums[1] = 2;
        System.out.println(nums[0]);
        System.out.println(nums[1]);
        nums[0] = 3;
        nums[1] = 4;
        System.out.println(nums[0]);
        System.out.println(nums[1]);
        // nums = new int[3]; 异常
    }
}

你可能感兴趣的:(Java程序设计,java,final)