Java final 关键字 (附一道有趣的运算题,final相关)

final是终态的意思,在Java中final被称为终结器

final可以用来修饰变量、方法、类

 

final修饰变量

final 修饰的变量叫常量,常量必须初始化,初始化之后值就不能被修改(必须在声明的时候初始化或者在构造器中初始化,

否则就会报编译错误 )。

 

final修饰方法

final修饰的方法不能被子类重写

 

final修饰类

使用final定义的类不能有子类

final一旦修饰一个类之后,该类的所有方法默认都会加上final修饰。

 

    byte b1=1,b2=2,b3,b6,b8;
    final byte b4=4,b5=6,b7=9;
    public void test() {
        b3=(b1+b2);  /*语句1*/
        b6=b4+b5;    /*语句2*/
        b8=(b1+b4);  /*语句3*/
        b7=(b2+b5);  /*语句4*/
        System.out.println(b3+b6);
    }

我们再IDEA上看一看 

来总结一下

当使用 +、-、*、/、%、运算操作时

遵循如下规则: 只要两个操作数中有一个是double类型的,另一个将会被转换成double类型,并且结果也是double类型

如果两个操作数中有一个是float类型的,另一个将会被转换为float类型,并且结果也是float类型

如果两个操作 数中有一个是long类型的,另一个将会被转换成long类型,并且结果也是long类型

否则(操作数为:byte、 short、int 、char),两个数都会被转换成int类型,并且结果也是int类型。

根据这个规则来看,我们只需要把int转为byte应该就不会报错了

b7出错了,因为final是终态,final修饰的域类型不会发生变化且值无法再改变
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值