Object 클래스
클래스를 선언할 때 다른 클래스를 상속하지 않으면 java.lang.Object 클래스를 상속하게 됩니다.
따라서 자바의 모든 클래스는 Object 클래스의 자식이거나 자손 클래스입니다.
Object는 자바의 최상위 클래스에 해당합니다.
필드가 없고, 메서드들로 구성되어 있습니다.
이 메서드들은 모든 클래스가 Object를 상속하기 때문에 모든 클래스에서 사용이 가능합니다.
객체 비교 equals()
Object의 메서드.
public boolean equals(Object obj) { ... }
equals() 메서드의 매개 타입은 Object 인데 이모든 객체가 매개값으로 대입될 수 있음을 말합니다. Object가 최상위 타입이므로 모든 객체는 Object 타입으로 자동 타입 변환이 될 수 있기 때문
equals() 메서드는 비교 연산자인 == 과 동일한 결과를 리턴.
두 객체가 동일하다면 true를 리턴하고 , 그렇지 않으면 false를 리턴합니다.
Object obj1 = new Object();
Object obj2 = new Object();
boolean result = obj1.equals(obj2); ------|
기준 객체 비교 객체 |
|
boolean result = (obj1 == obj2); ←---------| 결과가 동일
두 객체를 동등 비교할 때 equals() 메서드를 흔히 사용합니다. equals() 메서드는 두 객체를 비교해서 논리적으로 동등하면 true 를 리턴하고 동등하지 않으면 false 를 리턴합니다. 논리적으로 동등하다는 것은 같은 객체이건 다른 객체이건 상관없이 객체가 저장하고 있는 데이터가 동일함을 뜻합니다.
바로 예제를 보겠습니다.
public class Member {
public String id;
public Member(String id) {
this.id = id;
}
@Override
public boolean equals(Object obj) {
if(obj instanceof Member) { 매개값이 Member 타입인지 확인
Member member = (Member) obj; // 강제 타입 변환 후
if(id.equals(member.id)) { // id 필드 값이 동일한지 검사한 후
return true; // 동일하다면 true 리턴
}
}
return false; //
}
}
'자바' 카테고리의 다른 글
JAVA 자바 Object 클래스 객체의 문자 정보 toString() (0) | 2017.03.14 |
---|---|
JAVA 자바 Object 클래스 객체 해시코드 hashCode() (0) | 2017.03.14 |
JAVA 자바 예외처리 : 예외 정보 얻기 (0) | 2017.03.13 |
JAVA 자바 예외처리 : 사용자 정의 예외와 예외 발생 (0) | 2017.03.13 |
JAVA 자바 예외처리 : 예외 떠넘기기 (0) | 2017.03.13 |