Java中的final关键字如何从底层原理到高级应用,全面解析其作用与实现机制?

2026-04-12 04:201阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计783个文字,预计阅读时间需要4分钟。

Java中的final关键字如何从底层原理到高级应用,全面解析其作用与实现机制?

(目录)一、什么是final关键字?final是最终的意思,可以修饰类、方法、变量。修饰类表示该类不能被继承,修饰方法表示该方法不能被重写,修饰变量表示该变量一旦赋值后就不能再改变。

二、final修饰的特点* final修饰的类:明确表示该类是最终类,不能被继承。* final修饰的方法:明确表示该方法是最终权限的方法,不能被重写。* final修饰的变量:明确表示该变量一旦赋值后就不能再改变,即常量。

(目录)


一、什么是final关键字?

final是最终的意思,可以修饰类,方法,变量


二、final 修饰的特点

*修饰类:表明该类是最终类,不能被继承 *修饰方法:表明该方法是最终方法,不能被重写 *修饰变量:表明该变量是常量,变量第一次赋值后,不能再次被赋值(有且只能赋值一次)


三、final修饰变量的注意

* 变量是基本类型:指的是基本类型的"数据值"不能发生改变。 * 变量是引用类型:指的是引用类型的"地址值"不能发生改变,但是地址里面的内容是可以发生改变的。(地址值不能变,数据值可以变) * 修饰局部变量时可以先定义后赋值, 修饰成员变量时必须定义时完成赋值或者在构造方法中赋值。 引用数据类型有: 类,接口,数组,枚举


四、案例讲解

1.案例(修饰类)

final class Father extends Test{ //目的:为了代码安全 //final修饰的类不能被继承(没有子类),可以继承别人 } class son extends Father{ //报错 }

执行效果


2.案例(修饰方法)

class Father { public final void run(){ //final修饰的方法不能被重写 //可以被子类去用,但不能被重写 } } class Son extends Father{ @Override public void run(){ //报错 } }

执行效果

Java中的final关键字如何从底层原理到高级应用,全面解析其作用与实现机制?


3.案例(修饰基本数据类型变量)

public class Test2 { public static void main(String[] args) { //变量是基本类型的 final int a=19; //被final修饰后不是变量了,是常量只能被赋值一次,后面再赋值会报错 a=18; //第二次赋值报错 method(20); //第一次赋数据值 } public static void method(final int b){ b=200; //第二次赋数据值报错 } }

执行效果


4.案例(修饰引用数据类型变量)

//变量是引用数据类型的 final int [] arr={11,22,33}; arr[0]=110; //修过里面的内容不报错 arr=new int[10]; //第二次赋予地址值报错 final Student stu=new Student(); stu.age=100; //stu.age为地址值里面的内容,这个是可变得 System.out.println(stu.age); //age=100 stu=new Student(); //第二次赋予地址值报错

执行效果


作者:KJ.JK

本文共计783个文字,预计阅读时间需要4分钟。

Java中的final关键字如何从底层原理到高级应用,全面解析其作用与实现机制?

(目录)一、什么是final关键字?final是最终的意思,可以修饰类、方法、变量。修饰类表示该类不能被继承,修饰方法表示该方法不能被重写,修饰变量表示该变量一旦赋值后就不能再改变。

二、final修饰的特点* final修饰的类:明确表示该类是最终类,不能被继承。* final修饰的方法:明确表示该方法是最终权限的方法,不能被重写。* final修饰的变量:明确表示该变量一旦赋值后就不能再改变,即常量。

(目录)


一、什么是final关键字?

final是最终的意思,可以修饰类,方法,变量


二、final 修饰的特点

*修饰类:表明该类是最终类,不能被继承 *修饰方法:表明该方法是最终方法,不能被重写 *修饰变量:表明该变量是常量,变量第一次赋值后,不能再次被赋值(有且只能赋值一次)


三、final修饰变量的注意

* 变量是基本类型:指的是基本类型的"数据值"不能发生改变。 * 变量是引用类型:指的是引用类型的"地址值"不能发生改变,但是地址里面的内容是可以发生改变的。(地址值不能变,数据值可以变) * 修饰局部变量时可以先定义后赋值, 修饰成员变量时必须定义时完成赋值或者在构造方法中赋值。 引用数据类型有: 类,接口,数组,枚举


四、案例讲解

1.案例(修饰类)

final class Father extends Test{ //目的:为了代码安全 //final修饰的类不能被继承(没有子类),可以继承别人 } class son extends Father{ //报错 }

执行效果


2.案例(修饰方法)

class Father { public final void run(){ //final修饰的方法不能被重写 //可以被子类去用,但不能被重写 } } class Son extends Father{ @Override public void run(){ //报错 } }

执行效果

Java中的final关键字如何从底层原理到高级应用,全面解析其作用与实现机制?


3.案例(修饰基本数据类型变量)

public class Test2 { public static void main(String[] args) { //变量是基本类型的 final int a=19; //被final修饰后不是变量了,是常量只能被赋值一次,后面再赋值会报错 a=18; //第二次赋值报错 method(20); //第一次赋数据值 } public static void method(final int b){ b=200; //第二次赋数据值报错 } }

执行效果


4.案例(修饰引用数据类型变量)

//变量是引用数据类型的 final int [] arr={11,22,33}; arr[0]=110; //修过里面的内容不报错 arr=new int[10]; //第二次赋予地址值报错 final Student stu=new Student(); stu.age=100; //stu.age为地址值里面的内容,这个是可变得 System.out.println(stu.age); //age=100 stu=new Student(); //第二次赋予地址值报错

执行效果


作者:KJ.JK