【封装Java传值调用】

先看下面的一段代码:
  package com.ivantian.CoreFengZhuang;
  //call by values
  //call by address
  public class Difference {
  int x = 10; // 成员变量
  public static void main(String[] args) {
  int  a = 10;
  int  b = a;
  System.out.println("这是传值引用:");
  System.out.println("测试前的数据:");
  System.out.println("a的数值是:" + a + " b的数值是:" + b);
  a = 20;
  System.out.println("测试后的数据:");
  System.out.println("a的数值是:" + a + " b的数值是:" + b);
  System.out.println();
  System.out.println("这是传地址引用:");
  Difference diff = new Difference();
  Difference diff1 = diff; // 让 diff拥有同样的参考
  System.out.println("测试前的数据:");
  System.out.println("diff.x = " + diff.x +" diff1.x = " + diff1.x);
  diff.x = 100;
  System.out.println("测试后的数据:");
  System.out.println("diff.x = " + diff.x +" diff1.x = " + diff1.x);
  }
  }
  //执行结果如下
  /*
  这是传值引用:
  测试前的数据:
  a的数值是:10 b的数值是:10
  测试后的数据:
  a的数值是:20 b的数值是:10
  这是传地址引用:
  测试前的数据:
  diff.x = 10 diff1.x = 10
  测试后的数据:
  diff.x = 100 diff1.x = 100
  */
  不错,是和C/C++的一些程序示例是相似的,实际上,在C++中有两种传递参数的方式:传值调用(call by alues) 和 传参考调用(call by reference)的方式,而在Java中只有传值调用。你不仅会好奇的问,上面的例子中diff不是传递的"参考"吗?更多精彩教程请关注:xp系统之家官网

posted @ 2013-08-04 14:34  豆豆逗逗  阅读(205)  评论(0编辑  收藏  举报