String
필드 가 하나 인 클래스를 구성했습니다 . 그런 다음 두 개의 개체를 만들고 ==
연산자를 사용하여 비교해야합니다 .equals()
. 내가 한 일은 다음과 같습니다.
public class MyClass {
String a;
public MyClass(String ab) {
a = ab;
}
public boolean equals(Object object2) {
if(a == object2) {
return true;
}
else return false;
}
public boolean equals2(Object object2) {
if(a.equals(object2)) {
return true;
}
else return false;
}
public static void main(String[] args) {
MyClass object1 = new MyClass("test");
MyClass object2 = new MyClass("test");
object1.equals(object2);
System.out.println(object1.equals(object2));
object1.equals2(object2);
System.out.println(object1.equals2(object2));
}
}
컴파일 후 결과로 두 번 거짓이 표시됩니다. 두 개체에 동일한 필드 ( "test")가 있으면 왜 거짓입니까?
equals
andequals2
:if(a) { return true; } else { return false; }
당신이 아마 작성해야 할 형식의 무언가가있을 때마다return a
.