对象引用的例子: public class Change { public void Change(int a) { x=a; } public void get( ) { return x; } public void ChangeValue(int b) { x=b; } public static void swap(Change object1,Change object2) { int temp1=object1.get(); int temp2=object2.get(); object1.ChangeValue(temp2); object2.ChangeValue(temp1); System.out.println(object1.x+"and"+object2.x); } private x; } public class TestChange { public static void main(String[] args) { Change object1=new Change(100); Change object2=new Change(32); Change.swap(object1,object2); } }
To danlella(frog_in#) 你确定你在上面写的代码可以run? 居然有2个public类!FT!!! 你有change(int){}这个constructor吗? 只把x修饰为private,难道就不要类型了吗? 拜托,你指导别人,麻烦也把自己写的代码complie一下阿!
public class Change
{
public void Change(int a)
{
x=a;
}
public void get( )
{
return x;
}
public void ChangeValue(int b)
{
x=b;
}
public static void swap(Change object1,Change object2)
{
int temp1=object1.get();
int temp2=object2.get();
object1.ChangeValue(temp2);
object2.ChangeValue(temp1);
System.out.println(object1.x+"and"+object2.x);
}
private x;
}
public class TestChange
{
public static void main(String[] args)
{
Change object1=new Change(100);
Change object2=new Change(32);
Change.swap(object1,object2);
}
}
居然有2个public类!FT!!!
你有change(int){}这个constructor吗?
只把x修饰为private,难道就不要类型了吗?
拜托,你指导别人,麻烦也把自己写的代码complie一下阿!
基本类型参数是传值,是把参数的值复制另外一份传递给子程序,调用者和被调用者分别持有这个参数,在一个中对参数的操作不会影响到另一个中参数的值;而对象是引用传递的方式,被复制的是对这个对象的引用,也就是说调用者和被调用者实际上是在对同一个对象进行操作,在任何一方对参数做出的修改,都能在另一方得到体现。