首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

<转>Java参数传递形式

2012-12-26 
转Java参数传递方式1、对于原始数据类型,也就是int、 long、char之类的类型,是传值的,如果你在方法中修改了

<转>Java参数传递方式

1、对于原始数据类型,也就是int、 long、char之类的类型,是传值的,如果你在方法中修改了值,方法调用结束后,那个变量的值没有改变。?
2、对于对象类型,也就是Object的子类,如果你在方法中修改了它的成员的值,那个修改是生效的,方法调用结束后,它的成员是新的值,但是如果你把它指向一个其它的对象,方法调用结束后,原来对它的引用并没用指向新的对象。?
代码如下:

  • public?class?Tester?{? ??
  • ????public?static?void?main(String[]?args)?{? ??
  • ????????int?primitive?=?2;? ??
  • ????????changePrimitive(primitive);? ??
  • ????????//primitive的值依然是2????
  • ????????MyClass?myClass?=?new?MyClass();? ??
  • ????????changeObject(myClass);? ??
  • ????????//myClass仍然指向的是执行changeObject之前的那个对象????
  • ????????//但是myClass.i等于3了????
  • ????}? ??
  • ??
  • ????public?static?void?changePrimitive(int?primitive)?{? ??
  • ????????primitive?=?3;? ??
  • ????}? ??
  • ??
  • ????public?static?void?changeObject(MyClass?myClass)?{? ??
  • ????????myClass.i?=?3;? ??
  • ????????myClass?=?new?MyClass();? ??
  • ????}? ??
  • }? ??
  • ??
  • class?MyClass?{? ??
  • ????int?i;? ??
  • }???

    ?


    另一个解释
    1、基本类型作为参数传递时,是传递值的拷贝,无论你怎么改变这个拷贝,原值是不会改变的
    2、在Java中对象作为参数传递时,是把对象在内存中的地址拷贝了一份传给了参数。

    ?

    转自http://yousking.iteye.com/blog/65164

    ?

  • 热点排行