JavaSE之final关键字

本文详细介绍了final关键字在Java中的使用方式及意义,包括修饰类、方法和变量的不同效果,并通过实例展示了final修饰变量的具体行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、概念

二、修饰范围


一、概念

将方法或类声明为final,主要目的是:确保他们不会在子类中改变语义有些类在描述完之后,不想被继承,或者有些类中的部分方法功能是固定的,不想让子类重写。就可以使用final关键字解决,它可以用来修饰类,类的成员,以及局部变量。

例如String类被final修饰,这意味着不允许任何人定义String的子类。即String的引用一定是一个String对象,而不可能是其他类的对象。

二、修饰范围

,该类不能被继承,不能拥有子类

方法不可以被覆盖,即不能被重写

变量称为常量,这些变量只能赋值一次

引用类型引用类型的变量值为对象地址值,地址值不能更改,但是地址内的对象属性值可以修改

    final Person p = new Person();
    Person p2 = new Person();
    //final修饰的变量p,所记录的地址值不能改变
    p = p2;
    //可以更改p对象中name属性值
    p.name = "小明";

成员变量,需要在创建对象前赋值,否则报错。(当没有显式赋值时,多个构造方法的均需要为其赋值,以防止该变量没有被初始化)

public class Demo {
	//直接赋值
	public final int m = 100;
	
	//final修饰的成员变量,需要在创建对象前赋值,否则报错。
	public final int n; 
	public Demo(){
        // 可以在创建对象时所调用的构造方法中,为变量n赋值
		n = 2019;
	}
	public Demo(String name){
        // 每个构造方法都需要为其赋值
		n = 2019;
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值