Final

本文详细介绍了Java中final关键字的使用,包括修饰变量、方法和类的场景。通过实例展示了final修饰变量后不可改变其值,final修饰方法无法被子类重写,以及final修饰类防止继承的特点。同时,文章提到了Math类作为final类的应用,以及其属性和方法的静态和final特性。
摘要由CSDN通过智能技术生成

Final修饰符

修饰变量

public class Final {
    public static void main(String[] args) {
        //第一种情况
        //final修饰一个变量,变量的值不可以改变,这个变量也成了一个字符常量,名字大写
        final int A = 10;//final修饰基本数据类型
        //A = 20; 报错,不可以修改值

        //第二种情况
        final Dog d = new Dog();//final修饰引用数据类型,地址值不可以改变
        //d = new Dog();报错-->地址值不可以更改
        //d对象的属性依然可以改变
        d.age = 10;
        d.weight = 10.4;

        //第三种情况
        final Dog d2 = new Dog();
        a(d2);//d没被final修饰,不影响d2的传入和新的对象的创建

        //第四种情况
        final Dog d3 = new Dog();


    }
    public static void a(Dog d){
        d = new Dog();
    }

    public static void b(final Dog d){//d被final修饰,指向不可以改变
        //d = new Dog();
    }
}

修饰方法

被final修饰的方法不可以被该类的子类重写

public class Person {
    public final void eat(){
        System.out.println("吃饭");
    }
}
class Student extends Person{
    @Override
    public void eat() {//报错,不能被重写
        super.eat();
    }
}

修饰类

final修饰类,代表该类不可以被子类继承


案例

JDK提供的Math类:

  1. 使用Math类时无需导包,直接使用即可
  2. Math不能被其他类继承
  3. Math类中的属性全部被final修饰,方法也是被final修饰的(被省略)
  4. 外界不可以创建对象(构造器被private修饰)
  5. Math类中的所有的属性,方法都被static修饰,可以通过类名.属性名或者类名.方法名调用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值