java的引用型数据包括对象 数组以及接口.当参数是引用类型时,"传值"传递的是变量的引用而不是变量所引用的实体.
如果改变参数变量所引用的实体,就会导致原变量的实体发生同样的变化.
两个同类型的引用型变量如果具有同样的引用,就会用同样的实体.
class People
{ int money;
void setMoney(int n)
{ money=n;
}
}
class A
{ void f(double y,People p)
{ y=y+1;
p.setMoney(100);
System.out.printIn("参数y的值是:"+y);
System.out.printIn("参数对象p的money是:"+p.money);
}
}
public class Example
{ public static void main(String args[])
{ double y=0.8;
People zhang=new People();
zhang.setMoney(8888);
A a=new A();
System.out.printIn("在方法f被调用之前对象zhang的money是:"+zhang.money+"y的值是:"+y);
a.f(y,zhang);
System.out.printIn("在方法f被调用之后main方法中y的值仍然是:"+y);
System.out.printIn("在方法f被调用之后main方法中对象zhang的money是:"+zhang.money);
}
}
运行的结果如下:
在方法f被调用之前对象zhang的money是:8888 y的值是:0.8
参数y的值是:1.8
参数对象p的money是:100
在方法f被调用之后main方法中y的值仍然是:0.8
在方法f被调用之后main方法中对象zhang的money是100