当我在对象中使用对象作为参数时,不明白

时间:2015-03-11 23:20:29

标签: java object methods parameters

刚开始我需要学习如何将对象作为参数传递给方法。我对此有点困惑,需要你的帮助。在此之前,我已经了解了方法和构造函数重载。这是代码:

class Test {
    int a, b;

    Test(int i, int j) {
        a = i;
        b = j;
    }

    // returns value true if object is equal to object which called method
    boolean equals(Test o) {
        if (o.a == a && o.b == b) {
            return true;
        } else {
            return false;
        }
    }
}


public class ProslediObjekat {
    public static void main(String[] args) {
        Test ob1 = new Test(100, 22);
        Test ob2 = new Test(100, 22);
        Test ob3 = new Test(-1, -1);

        System.out.println("ob1 == ob2: " + ob1.equals(ob2));
        System.out.println("ob1 == ob3: " + ob1.equals(ob3));

    }
}

据我所知,我们首先创建了三个对象并为它们提供了一些值。 然后,当我们制作这个Test o参数时,让我感到困惑的部分就是其中的一部分。我从未使用过对象作为参数,所以我不明白我们是如何制作这个对象的?我只知道这个对象是参数。 需要帮助来了解这部分内容(测试o)

然后,此部分:ob1.equals(ob2),值ab包含由构造函数设置的值,而o.ao.b的值包含从对象ob2作为参数发送对吗?然后if语句必须检查这两个值是否相同。正确?

1 个答案:

答案 0 :(得分:0)

  

据我所知,我们首先创建了三个对象并为它们提供了一些值。然后让我迷惑的部分是我们制作这个Test o参数时的一部分。我从未使用过对象作为参数,所以我不明白我们是如何制作这个对象的?我只知道这个对象是参数。需要帮助来了解这部分内容(测试o)

以下代码添加了注释以便进一步理解。

// returns value true if object is equal to object which called method
boolean equals(Test o) //takes in object o of type Test as parameter
{
    if(o.a == a && o.b == b) //if member data a, b of parameter object is equal to calling object's value a, b.
    {
        return true; 
    }
    else
    {
        return false;
    }
   }
} 
  

然后,这部分:ob1.equals(ob2),值a和b具有由构造函数设置的值,o.a和o.b具有作为参数从对象ob2发送的值对吗?

正确,除非值从未初始化,例如Test t4

  

然后if语句必须检查这两个值是否相同。正确?