Java:final

final是访问控制中间修饰词。
final表示最终的,可以用于修饰类、变量、方法。
 
final类
 1 public class Test {
 2     public static void main(String[] args) {
 3         
 4     }
 5 }
 6 
 7 final class Person {
 8     
 9 }
10 
11 // 编译错误,final类不允许被继承
12 class Chinese extends Person {
13     
14 }

 

final变量
final变量的命名规范为全大写。
 
基本数据类型final变量
1 public class Test {
2     public static void main(String[] args) {
3         final int NUMBER = 100;
4 
5         // 编译错误,基本数据类型final变量不允许改值
6         NUMBER = 200;
7     }
8 }

 

引用类型final变量
 1 public class Test {
 2     public static void main(String[] args) {
 3         final People TOM = new People();
 4 
 5         // 编译通过,引用类型final变量允许修改内容
 6         TOM.age = 20;
 7 
 8         // 编译错误,引用类型final变量不允许修改引用地址
 9         TOM = new People();
10     }
11 }
12 
13 class People {
14     public int age = 30;
15 }

 

声明final成员变量时必须初始化。
class Circle{

    // final double PI; // 编译错误

    final double PI = 3.1415926; // 编译通过
}

 

声明final局部变量时可不用马上初始化,但是不初始化不能使用该变量。

以第一次赋值为初始化,之后该变量可正常使用。

1 public class Test {
2     public static void main(String[] args) {
3         final String NAME;
4         System.out.println(NAME); // 编译错误,未初始化状态不能使用
5         NAME = "Tom"; // 编译通过,以第一次赋值为初始化
6         System.out.println(NAME); // 编译通过,已初始化可正常使用
7         NAME = "Lucy"; // 编译错误,不能改值
8     }
9 }

 

final方法

public class Test {
    public static void main(String[] args) {
        
    }
}

class Person {
    final void say() {
        
    }
}

class Chinese extends Person {
    // 编译错误,final方法不允许被子类重写
    void say() {
     
    }
}

 

Java工具类中的final类

String、Interger、Math等等。

posted @ 2022-02-13 00:29  RexChou  阅读(138)  评论(0)    收藏  举报