❗동일성과 동등성
- 동일성(identity)
- 두 객체의 메모리 주소(참조값)가 같은지를 확인하는 것
- 자바에서 == 연산자를 통해 동일성을 비교
- 동등성(equality)
- 두 객체의 내용이 같은지를 확인하는 것
- equals() 메서드를 오버라이딩하여 동등성을 정의할 수 있음
- 기본적으로 Object 클래스의 equals()는 동일성을 기준으로 하지만, 커스텀 객체에서는 내용을 비교하도록 오버라이딩할 수 있음
❗예시 코드
class Person {
String name;
Person(String name) {
this.name = name;
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
Person person = (Person) obj;
return name.equals(person.name);
}
}
public class Example {
public static void main(String[] args) {
Person person1 = new Person("Alice");
Person person2 = new Person("Alice");
System.out.println("Identity (==) : " + (person1 == person2)); // false
System.out.println("Equality (equals) : " + person1.equals(person2)); // true
}
}
728x90
반응형
'🔻Language > Java' 카테고리의 다른 글
[Java] Java 컴파일 및 런타임 과정 (0) | 2024.07.18 |
---|---|
[Java] JVM이란 (0) | 2024.07.18 |
[Java] 두 날짜 사이의 차이 계산하기 (0) | 2023.02.24 |
[Java] 현재 날짜, 시간 불러오기 (0) | 2023.01.03 |
[Java] 문자열 랜덤 생성 (0) | 2022.12.23 |