传值调用是指传直接值进行运算,传址调用是指传对象引用进行运算,在Java中调用方法时,如果传递的参数是基本数据类型,在方法中将不能改变参数的值,这意味着你只能使用它们,如果传递的是对象引用,你也不能在方法中修改这个引用,但可以调用对象的方法以及修改允许存取的成员变量,所以如果不想改变参数的值,可以采用传值调用的方法,如果想改变参数的值,可采用传递对象的方法,间接修改参数的值
//传值调用
class P1
{
public static void main(String[] args)
{
int x = 10,y = 10;
doPower(x,y); //当然还有更好的方法,这里只是个例子说明传值和传址调用
System.out.println("x="+y+",y="+y);
}
static void doPower(int passX,int passY)
{
passX = passX*passX;
passY = passY*passY;
System.out.println("passX="+passX+",passY="+passY);
}
}
//传址调用
class P2
{
public static void main(String[] args)
{
Power p = new Power();
p.doPower(10,10);
System.out.println("x="+p.x+",y="+p.y);
}
}
class Power
{
int x,y;
void doPower(int passX,int passY)
{
x = passX*passX;
y = passY*passY;
}
}