JAVA

Object 클래스 equals메소드

연93 2022. 10. 7. 15:37

기본적으로 == 연산자와 동일한 결과 리턴 (번지 비교)

 

오버라이딩 필수

논리적 동등: 같은 객체이건 다른 객체이건 상관없이 객체 저장 데이터 동일

Object equals() 메소드를 재정의하여 논리적 동등 비교할 때 이용

// 모든 클래스들은 Object클래스를 자동으로 상속받는다.
public class Member /* extends Object */ {
	public String id; // 필드선언
	
	public Member(String id) { //생성자 추가
		this.id = id;		 // 외부에서 id 받아 초기화
	}
	
	//  equals 재정의
	@Override
	public boolean equals(Object obj) {
		if(obj instanceof Member) {
			// 강제 타입변환
			Member member = (Member) obj;
			// 필드 id와 member 객체의 id값 비교
			if(id.equals(member.id)) {
				return true;
			}
		}
		return false;
	}
	
}
package sec03.exam01_equals;

public class MemberExample {

	public static void main(String[] args) {
		Member obj1 = new Member("blue"); // 객체생성 id = blue
		Member obj2 = new Member("blue"); // 객체생성 id = blue
		Member obj3 = new Member("red");  // 객체생성 id = red
		
		// 객체비교   == 사용가능
		if(obj1.equals(obj2)) { //equals는 Object
			System.out.println("obj1과 obj2는 동등합니다.");
		}else {
			System.out.println("obj1과 obj2는 동등하지 않습니다");
		}
		
		if(obj1.equals(obj3)) { //equals는 Object
			System.out.println("obj1과 obj2는 동등합니다.");
		}else {
			System.out.println("obj1과 obj3는 동등하지 않습니다");
		}
		
	}

}

'JAVA' 카테고리의 다른 글

Object 클래스 객체복제 clone()  (0) 2022.10.07
Object 클래스 객체 해시코드(hashCode())  (0) 2022.10.07
제네릭 메서드 예제 (태그 설명)  (0) 2022.09.29
제네릭 메서드  (0) 2022.09.29
제네릭 멀티 타입 파라미터  (0) 2022.09.29