zoukankan      html  css  js  c++  java
  • 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;

      总结:对于基本类型,不可变指的是值

         对于引用类型,不可变指的是引用地址

  • 相关阅读:
    Md5
    hdu 2569 彼岸
    调用系统相机相冊
    白盒測试
    HDU 1501
    IOS常见错误分析解决(一直更新) 你值得收藏-综合贴
    读“程序猿生存定律”笔记
    Halcon导出的cpp, VC++环境配置
    POJ 1260 Pearls (动规)
    hdoj-1856-More is better【并查集】
  • 原文地址:https://www.cnblogs.com/yaowukonga/p/3076009.html
Copyright © 2011-2022 走看看