修饰一个类
修饰一个方法
修饰一个局部变量
修饰一个成员方法
final关键字表示最终的,不可改变的。
1、修饰一个类:
当final用来修饰一个类的时候,这个类就不能有子类(俗称太监类),别的类不能extends它
2、修饰一个方法
:当final用来修饰一个方法的时候,这个方法就是最终方法,不能被覆盖重写
注意:对于类,方法来说,abstract关键字和final关键字不能同时使用,因为矛盾
3、修饰一个局部变量:
一旦使用final修饰局部变量,那么这个变量就不能进行更改,一次赋值,终生不变
比如final int num = 20; num = 10;这句话就是错误的,final不能被修改,即使是赋相同的值也不可以,只要保证一次赋值即可,地址值不能改变,不过里面的内容可以改
例子:
final Student stu2 = new Student("高圆圆");//地址值不变
stu2.setName("赵又廷");//只改成员方法内容
System.out.println(stu2.getName());//输出赵又廷
4、修饰一个成员方法
对于成员变量来说,如果用final关键词修饰,那么这个变量也照样不改变
1、由于成员变量有默认值,所以用了final以后必须手动赋值,不会再给默认值了
2、对于final成员变量来说,要么使用直接赋值,要么使用构造方法赋值
3、必须保证类当中所有的重载的构造方法,都最终会对final成员变量进行赋值
public > protected > (default) > private
* 同一个类(我自己) yes yes yes yes
* 同一个包(我邻居) yes yes yes no
* 不同包子类(我儿子) yes yes no no
* 不同包非子类(陌生人) yes no no no