java final关键字

一、种类

1、类

2、方法

3、局部变量

4、成员变量

二、类

1、作用

将该类变成最终类,不能被继承(太监类)

注意:该类的方法不能被overrider

2、语法

修饰符 final class 类名{}

3、例子

1 package cn.wt.day11;
2 
3 public final class Person {
4 
5     public void show(){
6         System.out.println("我是一个人");
7     }
8 }
Person.java
1 package cn.wt.day11;
2 // 继承报错
3 public class Student extends Person {
4 }
Student.java

三、方法

1、作用

将该方法变成最终方法,不可以被overrider

2、语法

修饰符 final 返回值类型 方法名称(参数列表){
   方法体  
}

3、注意

final和abstract不能共存。原因:final不能overrider,而abstract一定要overrider

4、例子

1 package cn.wt.day11;
2 
3 public class Person {
4 
5     public final void show(){
6         System.out.println("我是一个人");
7     }
8 }
Person.java
1 package cn.wt.day11;
2 
3 public class Student extends Person {
4     // override 报错
5     @Override
6     public void show() {
7 
8     }
9 }
Student.java

四、局部变量

1、分类

基本数据类型:变量的值不变

引用数据类型:变量的储存地址不变

2、语法

final 基本数据类型 变量名 = 值;
final 引用数据类型 对象名称 = new 引用数据类型()

3、例子

基本数据类型

package cn.wt.day11;

public class Demon {
    public static void main(String[] args) {
        final int num = 10;
        // 基本数据类型赋值报错
        num = 30;
    }
}

引用数据类型

package cn.wt.day11;

public class Demon {
    public static void main(String[] args) {
        final Person person = new Person("黄蓉");
        System.out.println(person);
        System.out.println(person.getName());
        person.setName("郭靖");
        System.out.println(person);
        System.out.println(person.getName());
    }
}

五、成员变量

1、注意

成员变量一定要赋值,原因:成员变量有默认值,若不复制的话,使用final后,变量的值就无法改变,那么这个变量就没原因

2、语法

修饰词 final 变量名称 = 值;

注意:也可以通过构造方法赋值,但不常用

 

posted @ 2020-01-24 18:24  市丸银  阅读(136)  评论(0编辑  收藏  举报