Java final关键词的简单理解

final关键词的四种用法

*
 * final 关键字:最终的、不可改变的
 *              1、可以用来修饰一个类
 *              2、可以用来修饰一个方法
 *              3、可以用来修饰一个局部变量
 *              4、可以用来修饰一个成员变量
 *
 *
 * 1、final 修饰一个类:
 * 格式:
 * public class final 类名称 {
 *     // 方法区
 * }
 * 含义:当前的类不能更改,不能有子类(太监类)
 *      不能使用一个 final 修饰的类来当父类,这个类里面的所有方法也就不能进行覆盖重写了。
 *
 *
 * 2、final 修饰一个方法:
 * 格式:
 * 修饰符 final 返回值类型 方法名称(参数列表) {
 *     // 方法体
 * }
 * 含义:该方法所在的类可以被继承(即可以是其他类的父类),
 *      但是这个方法不能给覆盖重写,用final修饰后就不可以更改了
 * 注意事项:对于类、方法来说,关键词abstract和final不能同时使用,因为会矛盾。
 *          abstract 修饰的类、方法是一定要给覆盖重写的,而 final 修饰的类是不能更改的(即不能给覆盖重写的)
 *          所以关键词abstract和final不能同时使用
 *
 *
 * 3、final 修饰一个局部变量
 * 一旦使用 final 修饰的局部变量,那么这个变量将不能进行更改,
 * "一次赋值,终生不变"
 * 注意事项:
 *          对于基本数据类型来说,不可变的是变量当中的数据值
 *          对于引用苏剧类型来说,不可变的是变量当中的地址值
 *
 *
 * 4、final 修饰一个成员变量
 * 对于成员变量来说,使用了 final 来修饰,那么这个变量同样也是不可以进行更改的,且需要马上赋值,否则无意义
 * 假如你用final修饰来一个成员变量,没有赋值,那么该成员变量的值是默认值,且不可以更改,那么定义这个成员变量就是无意义的
 * 注意事项:
 *          (1)成员变量具有默认值,所以用了final修饰后,必须手动赋值,不会再给默认值了。
 *          (2)对于final的成员变量,要么直接赋值,要么通过构造方法赋值(二者选其一)。
 *          (3)必须保证类当中所有的构造方法,最终都对final成员变量进行赋值。
 *

final修饰成员变量

img

posted @ 2020-01-11 11:26  LeeHua  阅读(235)  评论(0编辑  收藏  举报