刚开始我需要学习如何将对象作为参数传递给方法。我对此有点困惑,需要你的帮助。在此之前,我已经了解了方法和构造函数重载。这是代码:
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)
,值a
和b
包含由构造函数设置的值,而o.a
和o.b
的值包含从对象ob2
作为参数发送对吗?然后if语句必须检查这两个值是否相同。正确?
答案 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语句必须检查这两个值是否相同。正确?
是