언어, 프레임워크/Java
equals() 메서드 사용법
go_getter
2025. 3. 1. 18:22
equals()
Object 클래스의 메서드 중 하나다.
Object 클래스는 계층 구조 상 최상위 클래스로, 이 클래스의 메서드는 모든 객체가 상속받아 사용할 수 있다.
`equals()`는 현재 객체와 매개변수로 받아온 객체가 같은 내용이면 true를 반환하고, 그렇지 않으면 false를 반환하는 메서드다.
equals()는 동일한 타입의 객체끼리 비교해야 한다
equals() 메서드는 두 객체가 "같은 클래스"의 인스턴스인지 확인한 후, 값이 같은지 비교한다.
따라서 Integer(숫자)와 String(문자열)을 비교하면, 클래스가 다르기 때문에 false를 반환한다.
public class EqualsExample {
public static void main(String[] args) {
Integer num = 100; // Integer 객체
String str = "100"; // String 객체
System.out.println(num.equals(str)); // false
}
}
👉 같은 클래스로 파싱 후 비교
public class EqualsExample {
public static void main(String[] args) {
Integer num = 100;
String str = "100";
System.out.println(num.toString().equals(str)); // true
}
}
public class EqualsExample {
public static void main(String[] args) {
Integer num = 100;
String str = "100";
System.out.println(num.equals(Integer.parseInt(str))); // true
}
}
equals()는 같은 자료형이라면, 객체와 기본형의 비교도 가능하다
parseInt는 기본형 int로 값을 반환하는 함수이다.
그런데 위의 예시 코드를 보면 parseInt로 반환된 기본형 int와 객체 Integer가 equals()를 사용한다.
바로 Wrapper 클래스인 Integer가 내부적으로 객체 생성자를 사용해서 오토박싱했기 때문에, 결과적으로는 객체 두 개를 비교하는 코드가 된 것이다.
결론❗️
- 객체는 equals()를 사용해서 내용 비교 가능
- 객체와 기본형은 equals() 사용 가능
- 서로 다른 클래스(자료형)의 두 객체는 파싱 이후에 equals() 사용 가능