java函数传值的一点心得

- 中国WEB开发者网络 (http://www.webasp.net)
-- 技术教程 (http://www.webasp.net/article/)
--- java函数传值的一点心得 (http://www.webasp.net/article/26/25670.htm)
-- 作者:未知
-- 发布日期: 2005-07-15
 

函数传值分为两类:    1.基本型别  2.reference

基本型别没什么可说.对传 reference  具体说下.

程序如下:

class Change{
  int i;
  Change(int ii){i=ii;}
  static int changeInt(Change ch){     
    ch.i++;
    return 33;
  }
  public static void main(String[] args){
    Change c=new Change(11);
    System.out.println("111:"+c.i);
    //System.out.println("before:       "+c);
    changeInt(c);
    System.out.println("222:"+c.i);
    System.out.println("changeInt():"+changeInt(c));
    //System.out.println("after:       "+c);
  }
}

当调用  changeInt(Change ch)  方法时,可以通过 ch  将 i  的值改变.但是注意:  ch  只是  原reference的一个拷贝,地址相同,所以当我们输出注释的两句话时,得到的地址是一样的.这就说明函数并没有将 对象改变.

就是thinking  in  java上所说:     1.没有局域对象,只有局域性的  references;  2.references 受范围的限制,对象则否

                                                      


webasp.net