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

Java函数传引用,有有关问题

2012-10-17 
Java函数传引用,有问题Java函数传递,不是除了基本类型以外就是引用吗,这里的引用更像C++里的指针 为什么会

Java函数传引用,有问题
Java函数传递,不是除了基本类型以外就是引用吗,这里的引用更像C++里的指针 为什么会有下面这个情况?

Java code
public class Demo5{    public static void swap(P a,P b){//交换指向        P tmp=null;        tmp=a;        a=b;        b=tmp;    }    public static void fun(P a){//改变var        a.var=100;    }    public static void main(String[] args){        P a=new P(1);        P b=new P(2);        System.out.println("a="+a.var);        System.out.println("b="+b.var);        swap(a,b);        System.out.println("a="+a.var);        System.out.println("b="+b.var);                //为什么这里没有交换?        fun(a);        System.out.println("a="+a.var);                //这里的值却改变了?    }}class P{    public int var;    public P(int var){        this.var=var;    }}


[解决办法]
老生长谈的问题了

swap方法,是交换的该方法下的两个同名局部变量a,b。并没有交换到main方法传递过来的a,b

你把swap方法的两个a,b换成c,d。把名字改一下就清晰点了。

热点排行