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修饰的域类型不会发生变化且值无法再改变