final关键字

在Java中final被称为是“终结器”。为什么叫“终结器”呢?我们通过下文final的性质及用法就能了解它取这个外号的原因。
一、修饰类、方法,属性
1.final可以修饰类、方法、属性 。
(1)使用final定义的方法不能被子类所覆写

2.final成员变量必须在声明的时候初始化或者在构造器中初始化,否则就会报编译错误
(1)使用final定义的变量就成为了常量,常量必须在声明时赋值,并且不能够被修改
(2)使用final修饰的变量不能再次赋值 定义常量(public static final ),常量全用大写字母,多个单词间以_分隔。

3.使用final定义的类不能有子类(String类便是使用final定义) final一旦修饰一个类之后,该类的所有方法默认都会加上final修饰。(不包含成员变量)

二、数据类型转换
当使用 +、-、*、/、%、运算操作时,遵循如下规则: 只要两个操作数中有一个是double类型的,另一个将会被转换成double类型,并且结果也是double类型,如果两个操作数中有一个是float类型的,另一个将会被转换为float类型,并且结果也是float类型,如果两个操作 数中有一个是long类型的,另一个将会被转换成long类型,并且结果也是long类型,否则(操作数为:byte、 short、int 、char),两个数都会被转换成int类型,并且结果也是int类型。但是final修饰的域类型不会发生变化.

public class Text
{
    byte b1 = 1,b2 = 2;
    byte b3,b6,b8;
    final byte b4 = 4,b5 = 5, b7 = 9;
    void text()
    {
        b3 = b1 + b2;
        b6 = b4 +b5;
        b8 = b1 + b4;
        b7 = b2 + b5;
        System.out.println(b3 + b6 + b7 + b8);
    }
    public static void main(String[] args)
    {
        Text per = new Text();
        per.text();
    }
}

运行结果如下
在这里插入图片描述

在代码b3 = b1 + b2;b1,b2都是byte型相加会自动转换为int型,而b3为byte型此时结果就要从int转为byte,大转小,会存在精度丢失的问题,所以编译器报错,
b8,b7同理,只有b6它的俩个加数都是final修饰的byte型,类型不会发生变化。
当代码为只要求机算b6时的运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值