У меня есть следующий код, как я понимаю, он должен вернуть выход как TRUE
& FALSE
, но, к сожалению, когда я запустить эту программу ее возвращение выхода Ike False
& False
выхода. Зачем?Что такое конструктор, используя объекты в качестве параметра?
Пожалуйста, помогите мне, объяснив значение этой программы.
//How to pass objects as parameter in constructor
package learn.basic.corejava;
public class Test {
int a,b;
public Test(int i,int j) {
a=i;
b=j;
}
boolean check(Test tobj)
{
if(tobj.a == a && tobj.b == b)
{
return true;
}
else
{
return false;
}
}
public static void main(String[] args) {
Test obj1=new Test(100, 22);
Test obj2=new Test(100, 22);
Test obj3=new Test(-1, -1);
System.out.println(obj1.equals(obj2));
System.out.println(obj1.equals(obj3));
}
}
Почему я думаю, что «он должен вернуть True
& False
- Поскольку значение
obj1
устанавливаются в конструкторе & аналогично значенияobj2
также установлен в конструкторе, так как в первом сравнение они оба одинаковы, поэтому я думаю, что он должен вернутьtrue
для сравненияobj1.equals(obj2)
Почему, по вашему мнению, он должен возвращать False и True? –
Это должно быть 'System.out.println (obj1.check (obj2));' Вы did'nt переопределили equals, но создали новый метод под названием check. –
Почему вы ожидаете 'obj1.equals (obj2)' вызывать метод 'check (Test)'? –