Java中的final润饰形参
添加时间:2013-5-14 点击量:
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;
总结:对于根蒂根基类型,不成变指的是值
对于引用类型,不成变指的是引用地址
文艺不是炫耀,不是花哨空洞的文字堆砌,不是一张又一张的逆光照片,不是将旅行的意义转化为名牌包和明信片的物质展示;很多时候它甚至完全不美——它嘶吼、扭曲,它会痛苦地抽搐,它常常无言地沉默。——艾小柯《文艺是一种信仰》
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;
总结:对于根蒂根基类型,不成变指的是值
对于引用类型,不成变指的是引用地址
文艺不是炫耀,不是花哨空洞的文字堆砌,不是一张又一张的逆光照片,不是将旅行的意义转化为名牌包和明信片的物质展示;很多时候它甚至完全不美——它嘶吼、扭曲,它会痛苦地抽搐,它常常无言地沉默。——艾小柯《文艺是一种信仰》