java se final关键字

2020-02-16  本文已影响0人  起名字真难难难

final代表最终,不可改变,可修饰类、成员方法、成员变量、局部变量

一、final的修饰

1、final修饰类
public final class MyClassFinal {
    public void method(){
        System.out.println("被final修饰的类");
    }
}

是太监类,没有任何子类,成员方法无法被覆盖重写

2、final修饰成员方法

无法被子类重写(否则方法体会发生改变)
注:类与方法中,abstract与final不能同时使用,矛盾

3、修饰成员变量

只可赋值一次

final int num;//错误写法
    num=3;

错误!因为成员变量有默认值,但是局部变量可以这样写

4、修饰局部变量

在方法里赋值
注意:
(1)使用final后,基本类型,数值不变;引用类型,地址值不变
但是,地址值所指向的对象可以变
(2)成员变量有默认值,用了final之后必须手动赋值,局部变量可以先不手动
(3)final修饰的成员变量,要么直接复制,要么通过构造函数,二选一

    private final int num;
//如果不直接赋值的话,就用空参构造方法赋
    public MyFeild2Final() {
        num = 5;
    }

(4)保证类中所有重载构造方法都会对final修饰的变量进行赋值

上一篇 下一篇

猜你喜欢

热点阅读