Java基础学习笔记_final关键字详解

1、什么是final关键字?

final在Java中是一个保留的关键字,可以声明成员变量、方法、类以及本地变量。

2、怎样命名?

final修饰的变量是一个常量,常量的名称要全部大写,而且单词之间要用下划线分隔开,被final修饰的变量让程序变得更加严谨,给一些固定的数据起一些阅读性较强的名称。

3、什么是final常量?

被final修饰的成员变量是一个常量不能被修改,该变量只能被赋值一次,而且被声明为final的变量必须在声明时给定初值。 

一旦你将引用声明作final,你将不能改变这个引用了,编译器会检查代码,如果你试图将变量再次初始化的话,编译器会报编译错误。

4、什么是final方法?

final也可以声明成员方法。代表这个成员方法是一个最终方法,不可以被子类重写,但是可以被子类重载。

如果你认为一个成员方法的功能已经足够完整了,子类中不需要改变的话,你可以声明此方法为final。final方法比非final方法要快,因为在编译的时候已经静态绑定了,不需要在运行时再动态绑定。 

5、什么是final类?

使用final来修饰的类叫作final类。final类通常功能是完整的,它们不能被继承。Java中有许多类是final的,譬如String, Interger以及其他包装类。 

6、被final修饰的引用变量所指向的对象内容可变吗?

在上面提到被final修饰的引用变量一旦初始化赋值之后就不能再指向其他的对象,那么该引用变量指向的对象的内容可变吗?看下面这个例子:

public class Test {
    public static void main(String[] args)  {
        final MyClass myClass = new MyClass();
        System.out.println(++myClass.i);
 
    }
}
 
class MyClass {
    public int i = 0;
}

这段代码可以顺利编译通过并且有输出结果,输出结果为1。这说明引用变量被final修饰之后,虽然不能再指向其他对象,但是它指向的对象的内容是可变的。

猜你喜欢

转载自blog.csdn.net/qq_43191910/article/details/114762848