1.final修饰类
格式:
public final class 类名{}
特点:
被 fiinal 修饰的类 不能被继承
2.final修饰方法
格式:
修饰符 final 返回值类型 方法名(形参){
方法体
return结果
}
特点:
被 final 修饰的方法 不能被重写
注意:
final 和 abstract 冲突,应为abstract为抽象方法一定要被 重写,而 final 不能被 重写
3.final修饰局部变量
格式:
final 数据类型 变量名 = 值
特点:
被 final 修饰变量 不能被二次赋值
注意:
被 final 修饰的 局部变量 需要手动赋值,如果不手动赋值的话是不能使用的
4.final修饰对象
格式:
final 数据类型 对象名 = new 对象();
特点:
被 final 修饰的对象,地址值不能改变,但是对象中的属性值可以改变
5.final修饰成员变量
格式:
final 数据类型 变量名 = 值
特点:
(1)需要手动赋值
(2)不能二次赋值
注意:
在Java中,成员变量有默认值,即使你没有给成员变量赋值,Java也会根据成员变量的属性自动赋予默认值;而局部变量是没有默认值的,如果一个局部变量没有赋值而使用,会出现编译错误。
所以如果成员变量在final的时候没有赋值的话,它将永远使用默认值;而局部变量可以将定义和赋值分开。
public class Main() {
public final int a; // a将一直使用默认值0
public void setA(int a) {
this.a = a; // 这一步将会报错,说明a是final类型不能被二次赋值
}
public void print() {
final int temp;
temp = 1; // temp局部变量可以将 定义 和 赋值分开
System.out.println("局部变量的值是:" + temp);
}
}