1.可以用来修饰一个类
2. 可以用来修饰一个成员方法
3.可以用来修饰一个成员变量
4.可以用来修饰一个局部变量
final用来修饰一个类
格式:public final class MyClass
fianl修饰的类不能有子类,但可以有父亲类,正时因为它没有子类,所以类里的方法不能覆盖重写
public final class MyClass {
}
final用来修饰一个成员方法
当final关键字用来修饰一个方法的时候,这个方法就是最终方法,也就是不能被覆盖重写。
格式:public final void method (){
}
对于类和方法来说,abstract和fianl关键字不能同时出现,因为会相互矛盾。
public class MyClass {
public final void method(){
}
}
final关键字用来修饰局部变量
final一旦用来修饰局部变量,那么局部变量的值就不能改变。
格式:final int num = 20;
- final不仅可以用来修饰基本类型,还能用来修饰引用类型
修饰基本类型时,不可变说的是数据不可变
修饰引用类型时,不可变说的是地址不可变
final关键字用来修饰成员变量
由于成员变量具有默认值,所以用了final之后必须手动赋值 |
---|
对于final的成员变量,要么使用直接赋值,要么通过构造方法赋值,二者任选其一 |
必须保证类中的所有构造方法最终都会对final的成员变量进行赋值。 |
public class MyClass {
final int num = 20;
/*public MyClass() {//也可以通过这种无参的构造方法进行赋值
num = 10;
}*/
public int getNum() {
return num;
}
//里面不能 写setter
}