final

final
1.final是java语言中的一个关键字
2.final表示最终的,不可变的
3.final可以修饰变量以及方法,还有类等

final class A{

}

class B extends A{

}

有final修饰的类不能被继承

class A {
     public final void Do(){
         System.out.println("A do");
     }
}

class B extends A{

    public void Do() {
        System.out.println("B do");
    }
}

final修饰的方法无法被覆盖,无法被重写

	final int i = 100;
	i = 200;

在这里插入图片描述

final修饰的局部变量,只能赋一次值

public class test {
    public static void main(String[] args) {
        
        final Person p = new Person(30);
        p = new Person(20);
    }
}

class Person{
    int age;

    public Person(){

    }

    public Person(int age){
        this.age = age;
    }

}

在这里插入图片描述

        final Person p = new Person(30);

        p.age = 25;
        System.out.println(p.age);
    }
}

class Person{
    int age;

    public Person(){

    }

    public Person(int age){
        this.age = age;
    }

}

final修饰的引用:该引用只能指向一个对象,并且它只能永远指向该对象,无法再指向其他对象。并且在该方法执行过程中,该引用指向对象之后,该对象不会被垃圾回收器回收,直到当前方法结束,才会释放空间

虽然final的引用指向对象A后,不能再重新指向对象B,但是对象A内部的数据可以被修改

public class FinalTest04 {
    public static void main(String[] args) {
    }
}

class Chinese {
    String idCard;
    String name;
    static final String country = "中国";

}

static final修饰的变量称为“常量”
实际上常量和静态变量一样,区别在于常量的值不能变, 常量和静态变量,都是存储在方法区,并且都是在类加载时初始化

final修饰的实例变量,系统不会赋默认值,要求必须手动赋值。这个收到赋值,在变量后边赋值可以,在构造方法中赋值也可以。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱与意志

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

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

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

打赏作者

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

抵扣说明:

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

余额充值