Java中final修饰变量

final 修饰一个变量,有很多种说法,比如不能改变等等 
准确的描述是 当一个变量被final修饰的时候,该变量只有一次赋值的机会

 


  • 在声明的时候赋值

i在第4行已经被赋值过了,所以这里会出现编译错误

 1 public class HelloWorld {
 2 
 3     public void method1() {
 4         final int i = 5;
 5         
 6         i = 10; //i在第4行已经被赋值过了,所以这里会出现编译错误
 7         
 8     }
 9 
10 }
  • 在声明的时候没有赋值

如果在声明的时候未赋值,那么可以在后面代码进行唯一的一次赋值

  • final 修饰其他

final 除了修饰变量,还可以修饰类(不能够被继承),修饰方法(不能够被重写)


 

练习

如果final修饰的是参数,能否在方法里给这个参数赋值?

1 public class HelloWorld {
2 
3     public void method1(final int j) {
4         j = 5; //这个能否执行?
5     }
6 }

答:无法执行,这个变量已经被final修饰了,一旦方法传入了某个参数,就相当于是赋值了,不能再进行以后的赋值

posted @ 2019-02-08 18:00  猫不会游泳却爱吃鱼  阅读(2047)  评论(0)    收藏  举报