Javafinal关键字

    科技2022-07-11  139

    目录

    1.修饰类2.修饰方法3.修饰变量1. 局部变量——基本类型2. 局部变量——引用类型3. 成员变量

    1.修饰类

    fianl修饰类:该类不能被继承(不能有子类,但是可以有父类)

    格式:

    final class 类名 { }

    代码示例:

    public final class MyClass extends Object{ public void method() { System.out.println("方法执行!"); } } public class MySubClass extends MyClass{ }

    报错:该类不能被继承

    2.修饰方法

    final修饰方法:这个方法就是最终方法,也就是不能被覆盖重写。

    格式:

    修饰符 final 返回值类型 方法名(参数列表){ //方法体 }

    重写被 final 修饰的方法,编译时就会报错。

    注意事项:对于类、方法来说,abstract关键字(要覆盖重写)和final关键字(不能被覆盖重写)不能同时使用,因为矛盾。

    abstract和final报错:

    3.修饰变量

    final修饰变量:表明该变量是一个常量,不能再次赋值

    1. 局部变量——基本类型

    final 修饰指的是基本类型的数据值不能发生改变 思考,以下两种写法,为何写法1报错!写法2可通过编译? 写法1:

    final int c = 0; for (int i = 0; i < 10; i++) { c = i; System.out.println(c);

    写法2:

    public static void main(String[] args) { for (int i = 0; i < 3; i++) { final int c = i; System.out.println(c); } }

    根据 final 的定义,写法1报错!写法2,可通过编译,因为每次循环,都是一次新的变量c。

    2. 局部变量——引用类型

    final 修饰指的是引用类型的地址值不能发生改变,但是地址里面的内容是可以发生改变的。

    3. 成员变量

    成员变量涉及到初始化的问题,初始化方式有两种,只能二选一:

    显示初始化;

    public class User { final String USERNAME = "张三"; private int age; }

    构造方法初始化。

    public class User { final String USERNAME ; private int age; public User(String username, int age) { this.USERNAME = username; this.age = age; } }

    被final修饰的常量名称,一般都有书写规范,所有字母都大写。

    Processed: 0.040, SQL: 8