Java final修饰形参

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入

  class BB

  {

  public int i;

  }

  class PP

  {

  public static void f(final BB ref) //我的理解是无法修改ref

  {

  ref.i = 55;

  }

  public static void main(String args[])

  {

  BB x = new BB();

  f(x);

  System.out.println(x.i); //但事实上是修改了。。。,不知为什么????

  }

  }

  final修饰基本类型(int,double,…)时值不能改变:例final int a = 6;a 的值就是6,不能改.

  修饰引用类型时,是把引用的地址不能改变,但所引用的对象的值可以改变,就像楼主举的那个例子:如果你想改变ref的引用地址是错误的.如:ref = new BB();是错的,但可以改变ref引用对象的值,如ref.i = 2;

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

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

那段岁月,无论从何种角度读你,你都完美无缺,

Java final修饰形参

相关文章:

你感兴趣的文章:

标签云: