Java面向对象-final关键字

在这里插入图片描述


一、final

可以修饰变量、方法、类

1、修饰变量

final修饰一个变量,变量的值不可以改变,这个变量就变成一个字符常量,约定俗称的规定:名字大写。
final修饰引用数据类型,那么地址值就不可以改变

package com.msb_final;

public class Test {
    public static void main(String[] args) {
        //第一种情况
        //todo final修饰一个变量,变量的值不可以改变,这个变量就变成一个字符常量,约定俗称的规定:名字大写
        final int A =10;
        // a =20;报错,不可以修改

        //第二种情况
        final Dog d = new Dog();//todo final修饰引用数据类型,那么地址值就不可以改变
        //d = new Dog()  地址值不可以改变
        //d对象的属性依然可以改变


    }

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

    }
}

2、修饰方法

final修饰方法,那么这个方法不可以被该类的子类重写;

在这里插入图片描述

3、修饰类

代表没有子类,该类不可以被继承,一旦一个类被final修饰,那么里面的方法没有必要被final修饰了。
在这里插入图片描述

4、案例

JDK提供的Math类,看源码发现:
a、使用Math类的时候无序导包,直接使用即可。

package java.lang;

b、Math类没有子类,不能被其他的类继承。

c、里面的属性全部被final修,方法也是被final修饰,只是省略不写,因为子类没有必要重写。

d、外界不可以实例化对象

e、发现Math类中所有的属性和方法都被static修饰,那么不能创建对象去调用,只能通过类名.属性名、类名.方法名去调用。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

敲代码敲到头发茂密

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

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

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

打赏作者

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

抵扣说明:

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

余额充值