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




