final修饰符

final在Java中可以用于修饰类、方法和变量,表示“最终的”或“不可变的”。final修饰类防止继承,如String类;修饰方法阻止子类重写,如Object的getClass();修饰变量确保值只赋一次,常用于常量。此外,final也可修饰方法参数和局部变量,确保它们在作用域内不变。

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

Java中的final修饰符可以用于类、方法和变量上。它的主要作用是表示“最终的”、“不可修改的”、“只能赋值一次的”。

1.final修饰类

当final修饰一个类时,该类不能被继承,即不能有子类。这种情况下,该类的实现被认为是完整、安全和稳定的。例如,String类就是一个final类,因为它的实现中包含了一些重要的安全机制,不能被子类修改。

示例代码:

public final class MyClass {
    // 类实现
}

2.final修饰方法

当final修饰一个方法时,该方法不能被子类重写。这种情况下,该方法的实现被认为是最终的、安全的或固定的。例如,Object类中的getClass()方法就是一个final方法,它返回该对象的运行时类型信息,不能被子类修改。

示例代码:

public class ParentClass {
    public final void myMethod() {
        // 方法实现
    }
}

public class ChildClass extends ParentClass {
    // 这里编译错误,无法重写myMethod()方法
    public void myMethod() {
        // 子类实现
    }
}

3.final修饰变量

当final修饰一个变量时,该变量的值只能被赋值一次,且不能再次修改。这种情况下,该变量被认为是不可变的、恒定的或常量化的。例如,Math.PI就是一个final变量,因为圆周率是一个固定的常量,不会发生变化。

如果final变量是一个对象引用,那么该变量指向的对象可以被修改,但是不能再将该变量指向另一个对象。

示例代码:

public class MyClass {
    public static final int MY_CONSTANT = 100;
    // 其他代码...
}

final还可以用于修饰方法参数和局部变量

4.final修饰方法参数

public class MyClass {
    public void myMethod(final String str) {
        // str不能被重新赋值
        System.out.println(str);
    }
}

myMethod()方法的参数str被final修饰,表示该参数只能被赋值一次,并且不能被重新赋值。因此,在方法的实现中,不能对str进行重新赋值操作。

5.final修饰局部变量

public class MyClass {
    public void myMethod() {
        final int num = 100;
        // num只能被赋值一次
        System.out.println(num);
    }
}

myMethod()方法中定义了一个final修饰的局部变量num,表示该变量只能被赋值一次。因此,在方法的实现中,不能对num进行重新赋值操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值