java基础 ---- final关键字

本文详细介绍了Java中的final关键字,包括其用于修饰类、方法和变量时的含义和限制。通过实例展示了final如何防止类被继承、方法被重写以及变量值的不可变性。同时,代码示例演示了final在实际编程中的应用,如创建不可变对象和确保线程安全等。
摘要由CSDN通过智能技术生成

java基础 ---- final关键字

final关键字的理解概述:

final关键字修饰的内容只能使用,不能改变或扩展。如:API中提供的类不能随便继承改写,有public final class String、 public final class Math 

final关键字的使用概述:

final关键词可以修饰类,方法,基本类型变量,引用类型变量:被修饰的类,不能被继承;被修饰的方法,不能被重写; 被修饰的基本类型变量,只能赋值一次,不能再被重新赋值;被修饰的引用类型变量, 只能指向一个对象,地址不能再更改,但是不影响对象内部的成员变量值的修改。

 

final关键字的最终测试代码:


/**
 * 构造一个一般类
 * 包含无参数,有参数的构造方法
 * 包含final成员变量,一般成员变量
 * 包含final成员方法,一般成员方法
 */
class MyClass {
    int num = 1;
    final String SIGN = "myClass"; //final修饰的常量名称,书写规范作大写字母
    //    final String SIGN;
    //    MyClass(String SIGN) {
    //        this.SIGN = SIGN;
    //    }

    final void method() {
        System.out.println("AAA");
    }

    void method02() {
        System.out.println("BBB");
    }
}

/**
 * 构造一个final类
 */
final class MyClass02 {
}

/**
 * 测试子类继承final类,一般类
 */
//class MyClassZi extends MyClass02{} 错于final类不能被继承
class MyClassZi extends MyClass {
    void method02() {
        System.out.println("BBB");
    }
    //    final void method() {
    //        System.out.println(CCC");
    //    }错于final方法不能重写
}

public class FinalCode {
    public static void main(String[] args) {
        /**
         * 测试final修饰新建对象
         * 测试分别为两种成员变量赋值
         * 测试分别为两种成员方法赋值
         */
        final MyClass myClass = new MyClass();
        //myClass = new MyClass();错于final修饰的引用变量只能指向一个对象内存地址
        //
        myClass.num = 2;//对象被final关键词修饰,不影响一般成员变量的重新赋值
        //myClass.sign = "myClass02"; 错于final修饰的成员变量不能重新赋值
        //
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值