본문 바로가기
study/Java

[Java] 29. 기본 API (Object 클래스)

by 금이패런츠 2022. 3. 25.
728x90
반응형
package chap11;
/*
 * Object 클래스
 *  1. 모든 클래스의 부모 클래스.
 *  2. 모든 클래스의 객체에는 Object 클래스의 객체를 포함한다.
 *  3. 모든 클래스는 Object 클래스의 멤버에 접근할 수 있다.
 *  
 *  equals 메서드 : 동일성 판단 메서드
 *                Object 클래스에서는 == 연산자와 동일한 기능 구현.
 *                내용비교(논리적 동등성)를 위해서는 오버라이딩이 필요함.
 *                참조형 객체인 경우 내용비교를 위해서는 == 연산자 사용하지 말고 equals 메서드로 비교.
 */
class Equal extends Object{ //(extends Object) 생략되어 있음
	int value;
	Equal(int value) {
		this.value = value;
	}
	//내용비교를 위한 equals 메서드 오버라이딩
	@Override
	public boolean equals(Object obj) {
		if(obj instanceof Equal) {
			Equal e = (Equal) obj;
			return value == e.value;
		} else return false;
	}
}
public class EqualsEx1 {
	public static void main(String[] args) {
		Equal e1 = new Equal(10);
		Equal e2 = new Equal(10);
		//e1이 참조하는 객체와 e2가 참조하는 객체가 같나? X (참조하는 곳이 다름)
		if(e1 == e2) System.out.println("e1 == e2: e1과 e2는 같은 객체임");
		else System.out.println("e1 != e2: e1과 e2는 다른 객체임");
		//equals : 내용비교를 위한 메서드
		//         Object 클래스에서는 내용비교 불가. == 연산자와 동일하게 구현함.
		//         각각의 클래스에서 내용비교를 위해 오버라이딩 필요.
		if(e1.equals(e2))
			System.out.println("e1.equals(e2): e1과 e2는 같은 내용의 객체임");
		else System.out.println("!e1.equals(e2): e1과 e2는 다른 내용의 객체임");
	}
}

11-12장 기본API.pdf
1.27MB

728x90
반응형