将对象传递给方法,如何理解?
class Test
 { 
int a,b;  Test(int i,int j)
 
 {
  a = i;
  b = j;  }void meth(Test o)    //这句,还有别的写法吗?如何理解?
  {
o.a *= 2; 

o.b /= 2; }

class CallByRef 
{
public static void main(String args[])
 {
   Test ob = new Test(15,20); System.out.println("ob.a and ob.b before call: " +ob.a + " " + ob.b); ob.meth(ob); System.out.println("ob.a and ob.b after call: " +ob.a + " " + ob.b);
}

void meth(Test o)    //这句,还有别的写法吗?如何理解?说详细一点,谢谢

解决方案 »

  1.   

    将对象传递给方法,如何理解?
    ===============
    这个问题本身提的就有问题?你最常用的public static void main(String args[])不也是将对象传递给方法吗??你要问的是:在对象内将对象传递给对象本身的方法
    不过这个也不是问题啊,jdk里面String类中的public int indexOf(String str)方法不和你这个例子一样么?
      

  2.   

    ob对象作为一个参数传个meth这个方法,方法中去调用这个对象中的a 和b并赋值
             也就是
             ob.a *= 2;
             ob.b *= 2;
      

  3.   

    void meth(Test o)    //这句,还有别的写法吗?如何理解?说详细一点,谢谢---------
    如果只针对本对象的话,方法可以改为:
    void meth()
    {
    a *= 2;
    b /= 2;
    }不是特殊情况没必要用void meth(Test o),来控制本类的其他对象
      

  4.   

    void meth(Test o){    //这句,还有别的写法吗?如何理解?
    o.a *= 2; 
    o.b /= 2;
    }
    java中参数传递都是传值的;
    如果是基本类型是传送基本类型的值的拷贝;如果是对象类型是传递对象地址的拷贝;在这方法中Test o 是形参,而类CallByRef的ob.meth(ob);的obj是实参; ob指向Test对象,o是ob的拷贝,也指向这个Test对象 没有问题了