【零基础学Java】—final关键字与四种用法(二十九)

简介: 【零基础学Java】—final关键字与四种用法(二十九)

一、final关键字

final关键字代表最终、不可改变的

常见的四种用法:

  • 可以用来修饰一个类
  • 可以用来修饰一个方法
  • 可以用来修饰一个局部变量
  • 可以用来修饰一个成员变量

(一)、final关键字用来修饰一个类

格式:
 public  final class 类名称 {
 // …………
  }

含义:当前这个类不能有任何的子类

注意:一个类如果是final的,那么其中所有的成员方法都无法进行覆盖重写(因为没儿子)

/*
注意:一个类如果是final的,那么其中所有的成员方法都无法进行覆盖重写(因为没儿子)
 */
public final class DemoFinal /*extends  Object*/{
    public void method(){
        System.out.println("方法执行");
    }
}
//不能使用一个final类来作为父类
public class MySon /*extends DemoFinal*/{
}

(二)、final关键字可以用来修饰一个方法

  • 当final关键字用来修饰一个方法的时候,这个方法就是最终的方法 也就是不能被覆盖和重写
格式:
修饰符 final 返回值类型 方法名称(参数列表){
方法体;
}

注意:对于类、方法来说,abstract关键字和final关键字不能同时使用,因为矛盾

(三)、final还可以用来修饰局部变量

  • final还可以用来修饰局部变量,那么这个变量就不能进行更改,一次赋值,终生不变
  • 对于基本类型来说 不可变是说的变量当中的数据不可变
  • 对于引用类型来说,不可变说的是变量当中的地址值不可改变
public class demo02 {
    public static void main(String[] args) {
        int num1=10;
        System.out.println(num1);//10
        num1=20;
        System.out.println(num1);//20
        //一次赋值,终生不变
        final int num2=100;
        System.out.println(num2);//100
       // num2=100;错误写法
        //正确写法 只要保证有唯一一次赋值即可
        final  int num3;
        num3=30;
        System.out.println(num3);//30
        //对于基本类型来说 不可变是说的变量当中的数据不可变
        //对于引用类型来说,不可变说的是变量当中的地址值不可改变
        Student stu1=new Student("张三");
        System.out.println(stu1);
        System.out.println(stu1.getName());//张三
        stu1=new Student("李四");//李四
        System.out.println(stu1);
        System.out.println(stu1.getName());
        final   Student stu2=new Student("王五");
        //错误写法啊,final的引用类型变量 其中的地址不可改变
       //stu2=new Student("王嘉尔");
        System.out.println(stu2.getName());
        stu2.setName("王嘉尔");
        System.out.println(stu2.getName());
    }
}

(四)、final关键字可以用来修饰一个成员变量

  • 对于成员变量来说,如果使用final关键字,那么这个变量也照样是不可变的
  • 对于成员变量具有默认值,所以使用了final之后必须手动赋值,不会再给默认值了
  • 对于final的成员变量,要么使用直接赋值,要么通过构造方法赋值(二者选择其一)
  • 必须保证类当中的所有的重载的构造方法都会对final的成员变量进行赋值


相关文章
|
1月前
|
存储 缓存 安全
除了变量,final还能修饰哪些Java元素
在Java中,final关键字不仅可以修饰变量,还可以用于修饰类、方法和参数。修饰类时,该类不能被继承;修饰方法时,方法不能被重写;修饰参数时,参数在方法体内不能被修改。
26 2
|
1月前
|
JavaScript 前端开发 Java
java中的this关键字
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript与Vue的大一学生。自学前端2年半,正向全栈进发。若我的文章对你有帮助,欢迎关注,持续更新中!🎉🎉🎉
51 9
|
1月前
|
设计模式 JavaScript 前端开发
java中的static关键字
欢迎来到瑞雨溪的博客,博主是一名热爱JavaScript和Vue的大一学生,致力于全栈开发。如果你从我的文章中受益,欢迎关注我,将持续分享更多优质内容。你的支持是我前进的动力!🎉🎉🎉
51 8
|
1月前
|
Java 开发者
在Java多线程编程的世界里,Lock接口正逐渐成为高手们的首选,取代了传统的synchronized关键字
在Java多线程编程的世界里,Lock接口正逐渐成为高手们的首选,取代了传统的synchronized关键字
47 4
|
2月前
|
存储 安全 Java
深入理解Java中的FutureTask:用法和原理
【10月更文挑战第28天】`FutureTask` 是 Java 中 `java.util.concurrent` 包下的一个类,实现了 `RunnableFuture` 接口,支持异步计算和结果获取。它可以作为 `Runnable` 被线程执行,同时通过 `Future` 接口获取计算结果。`FutureTask` 可以基于 `Callable` 或 `Runnable` 创建,常用于多线程环境中执行耗时任务,避免阻塞主线程。任务结果可通过 `get` 方法获取,支持阻塞和非阻塞方式。内部使用 AQS 实现同步机制,确保线程安全。
|
1月前
|
Java
final 在 java 中有什么作用
在 Java 中,`final` 关键字用于限制变量、方法和类的修改或继承。对变量使用 `final` 可使其成为常量;对方法使用 `final` 禁止其被重写;对类使用 `final` 禁止其被继承。
34 0
|
2月前
|
Java 程序员
在Java编程中,关键字不仅是简单的词汇,更是赋予代码强大功能的“魔法咒语”。
【10月更文挑战第13天】在Java编程中,关键字不仅是简单的词汇,更是赋予代码强大功能的“魔法咒语”。本文介绍了Java关键字的基本概念及其重要性,并通过定义类和对象、控制流程、访问修饰符等示例,展示了关键字的实际应用。掌握这些关键字,是成为优秀Java程序员的基础。
28 3
|
2月前
|
算法 Java
在Java编程中,关键字和保留字是基础且重要的组成部分,正确理解和使用它们
【10月更文挑战第13天】在Java编程中,关键字和保留字是基础且重要的组成部分。正确理解和使用它们,如class、int、for、while等,不仅能够避免语法错误,还能提升代码的可读性和执行效率。本指南将通过解答常见问题,帮助你掌握Java关键字的正确使用方法,以及如何避免误用保留字,使你的代码更加高效流畅。
40 3
|
2月前
|
存储 安全 Java
了解final关键字在Java并发编程领域的作用吗?
在Java并发编程中,`final`关键字不仅用于修饰变量、方法和类,还在多线程环境中确保对象状态的可见性和不变性。本文深入探讨了`final`关键字的作用,特别是其在final域重排序规则中的应用,以及如何防止对象的“部分创建”问题,确保线程安全。通过具体示例,文章详细解析了final域的写入和读取操作的重排序规则,以及这些规则在不同处理器上的实现差异。
了解final关键字在Java并发编程领域的作用吗?
|
2月前
|
Java 程序员 编译器