final关键字

Posted jianzha

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了final关键字相关的知识,希望对你有一定的参考价值。

final关键字

一、final关键字的基本用法

在Java中,final 关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)

1、修饰类

  1. 当用 final 修饰一个类时,表明这个类不能被继承

  2. 由于final 类禁止继承,所有 final 类中所有的方法都隐式指定为是 final 的,因为无法覆盖它们。在 final 类中可以给方法添加 final 修饰词,但这不会增添任何意义。

注意:当将类的整体定义为 final 时,表明了不继承该类,也不允许别人这样做。换句话说,处于某种考虑,你对该类的设计永远不需要做任何变动,或者处于安全的考虑,你不希望它有子类。

2、修饰方法

1、用 final 修饰的方法,想要确保在继承中使方法行为保持不变,并且不会被子类覆盖

2、类中所有的 private 方法都隐式地指定为是 final 的。

3、子类中有一个与父类相同的名称的方法(父类的方法是用private修饰的),此时并没有覆盖该方法,仅是在子类中生成了一个新的方法。

3、修饰变量

1、对于基本类型,final 使数值恒定不变;而用于对象引用,final 使引用恒定不变。一旦引用被初始化指向一个对象,就无法再把它改为指向另一个对象

2、对象其自身却是可以被修改的。

4、修饰参数

Java允许在参数列表中以声明的方式将参数指明为 final。这意味着你无法在方法中更改参数引用所指向的对象。

package com.jz;

class Gizmo {
    public void spin() {
        System.out.println("123");
    }
}
public class FinalArguments {
    void with(final Gizmo g) {

    }
    void without(Gizmo g) {
        g = new Gizmo();
        g.spin();
    }
    
    
    // 此方法会报错
    void f(final int i) {
        i++;
    }
    
    
    
    int g(final int i) {
        return i + 1;
    }
}

参考资料:

以上是关于final关键字的主要内容,如果未能解决你的问题,请参考以下文章

[AndroidStudio]_[初级]_[配置自动完成的代码片段]

异常和TCP通讯

异常--finally关键字

在内部片段类中使用ListView

Java之String相关内容详解(字符串和字符串常量池)面试题

代码块继承final关键字