Java学习 --- final关键字

目录

一、final

 二、注意事项

 三、相关案例


一、final

final表示最后的,最终的,可以用于修饰类,属性,方法,局部变量。

1、当不希望类被继承时,可以用final修饰。

 2、当不希望父类的某个方法被子类覆盖/重写(override)时,可以用final关键字修饰。

 3、当不希望类的的某个属性的值被修改,可以用final修饰。

 4、当不希望某个局部变量被修改,可以使用final修饰。

 二、注意事项

1、final修饰的属性又叫常量,一般用XX_XX_XX的格式大写字母来命名;

2、final修饰的属性在定义时,必须赋初值,并且以后不能再修改,赋值可以在如下位置之一【选择一个位置赋初值即可】:①、定义时 ②、在构造器中 ③、在代码块中

class A01{
    //定义时赋值
    public final int NUM1 = 10;
    public final int NUM2;
    public final int NUM3;
    //在构造器赋值
    public A01() {
        NUM2 = 20;
    }
    //在代码块赋值
    {
        NUM3 = 30;
    }
}

3、如果final修饰的属性是静态的,则初始化的位置只能是:①、定义时②、在静态代码块,不能在构造器中赋值。

 4、final类不能继承,但是可以实例化对象。

public class TestFinal02 {
    public static void main(String[] args) {
        new A03();
    }
}
final class A03{
    
}

5、如果类不是final类,但是含有final方法,则该方法虽然不能重写,但是可以被继承。

public class TestFinal02 {
    public static void main(String[] args) {
        new A04().hi();
    }
}

class A03{
   public final void hi(){
       System.out.println("静态方法被调用");
   }
}
class A04 extends A03{

}

6、如果一个类已经是final类了,就没有必要再将方法修饰成final方法。

7、final不能修饰构造器。

8、final和static往往搭配使用,效率更高,不会导致类的加载,底层编译器做了优化处理。

9、包装类(Integer,Double,Float,Boolean等都是final),String也是final类。

 三、相关案例

请编写一个程序,能够计算圆形的面积。要求圆周率为3.14.赋值的位置3个方式都写一下。

public class TestFinal03 {
    public static void main(String[] args) {
        double v = new Circle(3).calArea();
        System.out.println("面积是:"+v);
    }
}
class Circle{
    private double radius;
    private final double PI; //= 3.14;

    public Circle(double radius) {
        this.radius = radius;
        //this.PI = 3.14;
    }
    {
        PI = 3.14;
    }
    public double calArea(){
        return PI * radius * radius;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸭鸭老板

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值