Java教程

java-final使用细节

本文主要是介绍java-final使用细节,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

java-final使用细节1

请添加图片描述
请添加图片描述
源码
package com.Final;

public class Final02 {
public static void main(String[] args) {
CC cc = new CC();
EE ee = new EE();
ee.cal();
}
}
class AA{
/*
1. 定义时 如public final double TAX_RATE = 0.08;
2. 在构造器中
3. 在代码块中
*/
public final double TAX_RATE = 0.08;//1. 定义时赋值
public final double TAX_RATE2;
public final double TAX_RATE3;

public AA() {//2. 在构造器中赋值
    TAX_RATE2 = 1.1;
}
{//3. 在代码块中赋值
    TAX_RATE3 = 8.8;
}

}

class BB{
/*
如果final修饰的属性是静态的 则初始化的位置只能是
1. 定义时 2. 在静态代码块中 不能在构造器中赋值
*/
public static final double TAX_RATE = 99.9;
public static final double TAX_RATE2;

static {
    TAX_RATE2 = 3.3;
}

}

//final类不能继承 但是可以实例化对象
final class CC{}

//如果类不是final类 但是含有final方法 则该方法虽然不嫩重写 但是可以被继承
//即 仍然遵守继承的机制
class DD{
public final void cal(){
System.out.println(“cal()方法”);
}
}
class EE extends DD{}

java-final使用细节2

请添加图片描述
请添加图片描述
源码
package com.Final;

public class FinalDetail {
public static void main(String[] args) {
System.out.println(BBB.num);
}
}
final class AAA{
//一般来说 如果一个类已经是final类了 据没有必要再将方法修饰成final方法了
//public final void cry(){}
}

//final 和 static往往搭配使用 效率更高 不会导致类加载 底层编译器做了优化处理
class BBB{
public final static int num = 10000;//final 和 static 位置可以调换
static {
System.out.println(“BBB 静态代码块被执行”);
}
}

这篇关于java-final使用细节的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!