final关键字

final关键字

final 关键字的含义

final 代表最终、不可改变的.

final关键字的四种用法

1.final可以用来修饰一个类

含义:当前这个类不能有任何的子类

格式:

public final class 类名{
	}

注意:一个类如果是final类,那么其中的成员方法都无法进行覆盖重写。

2.final可以用来修饰一个方法

含义:当final关键字用来修饰一个方法的时候,这个方法就是最终方法,也即是不能被覆盖重写。

格式:

修饰符 final 返回值类型 方法名称(参数列表){

//方法体

}

注意:对于类、方法来说,abstract和final不能同时使用,因为矛盾。(子类当中是一定要覆盖重写抽象方法的,除非你也是抽象类,final方法不能覆盖重写。)

public abstract final void 方法名()是错误写法

3.final可以用来修饰一个成员变量

一旦使用final用来修饰局部变量,那么这个变量就不能更改

“一次赋值,终生不变”

final int num = 10;

num = 20 ;//错误

//正确写法,只要保证有一次唯一的赋值即可。

final int num2;

num2 = 30;

对于基本类型来说,不可变说的是变量当中的数据不可改变。

对于引用类型来说,不可变说的是变量当中的地址值不可改变。

Student stu1 =new Student("赵丽颖");

System.out.println(stu1);//@50cbc42f

System.out.println(stu1.getname());//赵丽颖

stu1 = new Student("冯绍峰");

System.out.println(stu1);//@75412c2f

System.out.println(stu1.getname());//冯绍峰

System.out.println("======================");

final Student stu2 = new Student("高圆圆");

//错误写法!final的引用类型变量,其中的地址值不能改变

//stu2 = new Student("赵又廷");

System.out.println(stu2.getname());//高圆圆

stu2.setName(“高圆圆圆圆圆圆圆圆”);

System.out.println(stu2.getname());//高圆圆圆圆圆圆圆圆

4.final可以用来修饰一个局部变量

对于成员变量来说,如果使用final关键字修饰,那么这个变量照样不能变。

1.由于成员变量具有默认值,所以用了final后必须手动赋值,不会再给默认值了。

2.对于final的成员变量,要么使用直接赋值,要么通过构造方法赋值。

3.必须保证类中所有重载的构造犯法,都最终会对final的成员变量进行赋值。

private final String name = “鹿晗”;//构造方法报错

public Person(){

	name = “关晓彤”

}
posted @ 2021-01-29 10:51  老虎彡  阅读(100)  评论(0)    收藏  举报