final关键字

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/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球