Java中的final修饰形参
1 package xingcan;2
3 public class BB {
4
5 public int i = 4;
6
7 }
1 package xingcan;2
3 public class PP {
4
5 public static void f(final BB b) {//我的理解是无法修改b
6
7 b.i = 55;
8 }
9
10 public static void main(String[] args) {
11
12 BB x = new BB();
13
14 f(x);
15
16 System.out.println(x.i);//但事实上是修改了。。。,不知为什么????
17
18 /**
19 *运行结果
20 *55
21 */
22 }
23
24 }
final修饰基本类型(int,double,...)时值不能改变:例final int a = 6;a 的值就是6,不能改.
修饰引用类型时,是把引用的地址不能改变,但所引用的对象的值可以改变,
比如上述那个例子:如果你想改变b的引用地址是错误的.如:b = new BB();是错的,
但可以改变b引用对象的值,如b.i = 2;
总结:对于基本类型,不可变指的是值
对于引用类型,不可变指的是引用地址
以上是 Java中的final修饰形参 的全部内容, 来源链接: utcz.com/z/394840.html