final关键字可以修饰类,方法,变量
-
final修饰的变量称为常量
变量–>成员变量和局部变量
final修饰成员变量,通常与static一起使用,称为静态常量static说明PI的使用需要使用类名. Math.PI
final说明PI的值在整个程序的运行过程其值不允许改变final修饰的局部变量称为常量
变量–>基本数据类型和引用数据类型
final修饰的基本数据类型,其值不允许更改
final修饰的引用数据类型, 其地址不允许更改
public class Test4 {
public static void main(String[] args) {
final double PI=3.14;
//PI=3.15;编译报错
final Bird bird=new Bird(2,"红色"); //bird存储的是内存地址\
// bird=new Bird(3,"绿色");//修改内存地址编译报错
bird.setColor("绿色"); //没有修改地址,而修改的是堆中的属性值
//调用show方法
show(bird); //方法传参,只传地址,不传修饰符 final
}
public static void show( Bird b){ //show方法中Bird b并没有使用final修饰
b=new Bird(3,"绿色");
}
}
- 修饰方法:
不允许子类重写,子类可以调用
Object中的wait()方法就使用了final修饰,所以wait()只允许被Object的子类调用,而不允许重写 - 修饰类:不允许有子类的,所以称为“太监类”
来源:CSDN
作者:Penerx
链接:https://blog.csdn.net/penerx/article/details/104349430