final关键字

来源:互联网 发布:大数据架构基础 编辑:程序博客网 时间:2024/05/16 05:19

1、在Java中声明类、属性和方法,局部变量时,可使用关键字final来修饰,表示“最终”。
这里写图片描述

2、final修饰类:太监类(不能被其它类继承)
这里写图片描述

3、final修饰的方法
例如:Object类中

public final native Class<?> getClass();

例如:

class Person {    public final void test(){        System.out.println("test");    }}class Worker extends Person{    //子类不能重写父类final声明的方法    public final void test(){        System.out.println("son");    }}

4、final修饰成员变量:必须初始化,而且值不能再改变
习惯上:final修饰的变量都要大写
(1)第一种方式:声明的时候初始化

class Person {    //final声明的成员变量必须初始化    private final String COUNTRY="中国";//声明时直接初始化    public final void test(){        System.out.println("test");    }}

(2)第二种方式:在构造代码块中初始化

class Person {    //final声明的成员变量必须初始化    private final String COUNTRY;    {        COUNTRY="中国";//可以在构造代码块中初始化,而且只能赋一次值    }    public final void test(){        System.out.println("test");    }}

(3)第三种方法:在构造方法中初始化

class Person {    //final声明的成员变量必须初始化    private final String COUNTRY;    public Person(){        COUNTRY="中国";//可以在构造方法中初始化,初始化代码只能在一个地方放出现    }    public final void test(){        System.out.println("test");    }}

注意:三种方式只能出现一个,不能同时出现

5、final修饰局部变量:常量
如同:圣旨
习惯上:final修饰的变量都要大写

    public static void main(String[] args) {        final String INFO="atguigu";//常量        INFO="shangguigu";//错误,不能再改    }

6、static 和final一起使用:
可以修饰属性或方法、内部类,但见的最多的是一起使用修饰成员变量(属性)
注意:局部变量不能使用static修饰

class Person {    //final声明的成员变量必须初始化    private static final String COUNTRY;//全局常量    static{        COUNTRY="中国";//可以在静态代码块中初始化    }    public static final void test(){        System.out.println("test");    }}

或者

class Person {    //final声明的成员变量必须初始化    private static final String COUNTRY="中国";//全局常量,可以直接初始化    public static final void test(){        System.out.println("test");    }}
0 0
原创粉丝点击