有关final关键字的使用

final的含义

final关键字代表最终的,不可改变的。
常见的四种用法:
1.用来修饰一个类。
2.用来修饰一个方法。
3.用来修饰一个局部变量。
4.用来修饰一个成员变量。

用来修饰一个类

final关键字修饰一个类的时候,代表这个类不可以被继承,也就是它不能有子类。
格式:
public final class 类名称{

}
注意:一个类如果是final类,那么这个类的所有成员方法都不能进行重写。

用来修饰一个方法

final关键字修饰一个方法的时候,代表这个方法是最终方法,这个方法不能被重写。
格式:
修饰符 final 返回值类型 方法名(参数列表){
方法体
}
注意:对于类,方法来说,abstract和final关键字不能同时使用,因为冲突。
如果abstract在类中出现,那么这个类必须被实现类继承,因为这个类是抽象类。
如果final在类中出现,那么这个类不能被继承,因为这个类是final类。
如果abstract在方法中出现,那么这个方法是抽象方法,它必须被非抽象子类重写。
如果final在方法中出现,那么这个方法是最终方法,它不能被重写。

用来修饰一个局部变量

final关键字修饰一个局部变量的时候,代表这个局部变量不能被再次赋值。相当于定义了一个常量。
格式:
final 数据类型 变量名 = 初始值
注意:
只要保证有唯一一次赋值即可。
对于基本数据类型来说,不可变代表变量中存的数据不可变。
对于引用数据类型来说,不可变代表变量中存的地址不可变。(地址不可变指的是引用和数据在内存中的位置的指向关系不可变,但是引用指向的数据是可变的。)

用来修饰一个成员变量

final关键字修饰一个成员变量的时候,代表这个成员变量不可变。
和局部变量的区别:
1.由于成员变量具有默认值,所以用了final关键字后必须手动赋值,不会再有默认值。
比如在类中定义一个成员变量String name,不用final的时候它的初始值是null,但是用了final后,如果它还有初值(用了final就没有初值了),那么将永远是null无法改变,无意义。所以必须手动赋值。

2.对于用了final关键字的成员变量,要么直接在定义时赋值,要么通过构造方法赋值,二者选其一。
如果选择使用构造方法赋值,且有重载的构造函数,那么必须保证每个构造函数都会对成员变量name进行赋值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值