final:最后的 最终的
final可以修饰 类 方法 属性 和局部变量
public class final1 {
}
final class A{}
class B extends A{}
class A{
public final void print1(){
System.out.println("嘀嘀嘀");
}
}
class B extends A{
public void print1(){}
}
public class final1 {
final int NUM = 12;
NUM = 12;
}
4.当final修饰局部变量时,此局部变量就成为了局部常量,也无法被修改
final使用注意事项
第二点非静态和静态属性常量初始化演示:
非静态常量初始化
public class final1 {
final int NUM ;
{
NUM = 1;
}
public final1(int NUM) {
}
}
静态常量初始化
public class final1 {
final static int NUM ;
static {
NUM = 1;
}
}
第八点代码演示:
当在main方法中使用静态属性 类名.静态属性名。这样会导致类加载,而在有些时候,我们不希望类加载,只是单纯的使用一下这个属性。此时就可以使用final和static搭配修饰这个属性
public class final1 {
public static void main(String[] args) {
System.out.println(AA.NUM);
}
}
class AA{
public final static int NUM = 12;
static {
System.out.println("静态代码块被调用");
}
}
运行结果:
12
可以看到并没有输出 静态代码块被调用 。这也说明AA类并没有被加载
final练习
public class final1 {
public static void main(String[] args) {
Circle circle = new Circle(6);
System.out.println(circle.carArea(6));
}
}
class Circle{
private double radius;
private final double PI = 3.14;
public Circle(double radius) {
this.radius = radius;
}
{
}
public double carArea(double radius){
return radius*radius*PI;
}
}
public class BB{
public int addOne(final int x){
++x;
return x+1;
}
}
Original: https://blog.csdn.net/WINorYU/article/details/127818497
Author: WINorYU
Title: final关键字
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/657543/
转载文章受原作者版权保护。转载请注明原作者出处!