final关键字的作用

这篇具有很好参考价值的文章主要介绍了final关键字的作用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录
  • 1.修饰类时
  • 2.修饰方法时
  • 3.修饰属性和局部变量时
    • 3.1修饰局部变量时
    • 3.2修饰成员变量时
    • 3.3修饰类变量时
  • 4.final与普通变量的区别
  • 5.final用于引用

1.修饰类时

1.只能是公共的(public)就算不写也是public
2.被final修饰的类不可以被继承

//前面默认有个public 写不写都行
final class A{
    
}

2.修饰方法时

1.方法不能不能覆盖
2.被final修饰的方法,JVM会尝试将其内联,以提高运行效率

3.修饰属性和局部变量时

3.1修饰局部变量时

1.要赋值
2.不能被改变

public class Test01 {
    public static void main(String[] args) {
        go();
    }
    public static void go(){
//        方式一:初始化的时候赋值
//        final int age = 10;
        
//        方式二:先初始化后赋值
        final int age;
        age = 10;
        System.out.println(age);
    }

}

3.2修饰成员变量时

1.必须在系统赋默认值之前赋值
2.不可更改

public class Test01 {
//    1.写法一报错未在创建时声明对象
//    final int a;
//    a =10;

//    2.写法二正确
//    final int a = 10;

//    3.写法三正确
    final int a;
//    赶在系统赋默认值之前赋值就行,系统赋默认值在构造方法执行的时候
    public Test01() {
        this.a =0;
    }
}
final String name = "qy";
//报错
name = "ym";

final Object obj = new Object();
//报错
obj = new Object();

3.3修饰类变量时

1.与static结合使用修饰的变量是常量
2.常量要符合命名规范,全部大写,可以用下划线连接
3.被final修饰的常量,在编译阶段会存入常量池中

public class Main {
//    final 放前放后都一样
//    final static double PI = 3.1415926;
    static final double PI = 3.1415926;
}

4.final与普通变量的区别

public class Test1 {
    public static void main(String[] args)  {
        String a = "hello2"; 
        final String b = "hello";
        String d = "hello";
        String c = b + 2; 
        String e = d + 2;
        System.out.println((a == c));
        System.out.println((a == e));
    }
}

//结果
//true
//false
public class Test2 {
    public static void main(String[] args)  {
        String a = "hello2"; 
        final String b = getHello();
        String c = b + 2; 
        System.out.println((a == c));
 
    }
     
    public static String getHello() {
        return "hello";
    }
}
//结果
//false

通过上面两个例子,我们可以发现在Test1中被final修饰的变量在进行字符串串接的时候,地址没变,但是在Test2中通过方法调用后就变了,也就是说间接的赋值会改变地址。

5.final用于引用

如果修饰引用,那么表示引用不可变,引用指向的内容可变。文章来源地址https://www.toymoban.com/news/detail-749997.html

public class Test02 {
    public static void main(String[] args) {
        final Student stu = new Student("小芊",18);
        //可以修改里面的值
        stu.setName("芊嵛");

//        不能再new
//        stu = new Student("ff",5);
    }
}

到了这里,关于final关键字的作用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java入门】final关键字、static关键字、内部类的认识

    前言 : final是Java中的一个修饰符,用于表示某个变量、方法或者类不能被修改。final可以用于修饰类、方法和变量(局部变量,成员变量)。被final所修饰的类不能被继承,被final所修饰的方法不能被重写,被final所修饰的变量,不能被重新赋值 。 static是Java中的一

    2024年02月11日
    浏览(55)
  • Java关键字:final解析

    目录 一、final变量 二、final方法  三、final类 final是Java语言中的一个,凡是被final修饰过的内容都是不可改变的。 final可用于变量声明,一旦该变量被设定,就不可以再改变该变量的值。通常,由final定义的变量为常量。 final double PI = 3.14 final定义的

    2024年02月14日
    浏览(48)
  • Java面向对象——多态、Object类、instanceof关键字以及final关键字

    总之,多态是面向对象编程中一个非常重要的概念,通过它可以实现统一的接口来操作不同的对象,提高代码的可读性和可维护性。在实际编程中,多态性的使用可以使代码更加灵活和扩展性更强。方法重写是实现多态的基础。 重写如下所示 关于hashCode方法的重写: 重写t

    2024年02月12日
    浏览(70)
  • final关键字--java学习笔记

    final是最终的意思,可以修饰类、方法、变量 修饰类:该类被称为最终类,特点是不能被继承了 修饰方法:该方法被称为最终方法,特点是不能被重写了 修饰变量:该变量只能被赋值一次 就相当于给类、方法、变量做了一个绝育手术  示例: final修饰类: final修饰方

    2024年01月18日
    浏览(82)
  • 浅析Java中的final关键字(详细)

    1.什么是final(概念) 2.final基本用法 3.深入理解final 4.final 的最佳实践 谈到final,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final 。final 是 Java 中的一个,可以用于修饰类、方法和变量。当一个类被声明为

    2024年02月03日
    浏览(66)
  • Final关键字的使用技巧及其性能优势

    Java中的final用于修饰变量、方法和类,可以让它们在定义后不可更改,从而提高程序的稳定性和可靠性。此外,final还有一些使用技巧和性能优势,本文将详细介绍它们。 在Java中,final用于修饰变量、方法和类,其基本用法如下: 修饰变量 当我们使用f

    2024年02月03日
    浏览(130)
  • 面向对象(八)-- static 与 final 关键字 的使用

    目录 1.  static 1.1  static 的概述 1.2  static 修饰的特点 1.3  static 使用时的注意事项:

    2023年04月25日
    浏览(53)
  • 我在VScode学Java类与对象(Java显式参数和隐式参数、静态方法+main方法、Java访问修饰符、static关键字、Java的包、对象数组)第三辑

    我的个人博客主页:如果’\\\'真能转义1️⃣说1️⃣的博客主页 关于Java基本语法学习----可以参考我的这篇博客:《我在VScode学Java》 方法会操作对象并访问他们的实例字段。 在Java中,显式参数和隐式参数是方法调用中的两种不同类型的参数。 注释: 第7行: sum 方法的参数

    2024年02月16日
    浏览(109)
  • 【C++】C++11-类的新功能&default&delete&final&override关键字

    一个类有多少个默认成员函数? c++98:6个 C++11:8个 在C++98中,一个类中有如下六个默认成员函数:构造函数,析构函数,拷贝构造函数,拷贝赋值函数,取地址重载函数,const取地址重载函数,其中前四个成员函数最重要.后面两个成员函数一般不会用到 其中这里“默认”的意思就是 你不

    2024年02月02日
    浏览(87)
  • volatile关键字作用

    volatile是一个和多线程相关的,主要有一下2点作用(只保证可见性,不保证原子性) 防止指令重排(有序性) JVM在不改变程序执行结果的前提下,在编译时会对指令的顺序进行重新排序,而volatile则能够禁止指令的重新排序 能够确保线程内存中的对象对其他内存可

    2024年02月15日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包