▸JAVA/라이브러리(API)

java.lang.Object 주요 메소드 [1/1]

코데방 2019. 12. 10.
728x90

모든 클래스가 기본적으로 상속받는 Object 클래스의 주요 메소드입니다.

[ hashCode() ]

  • 인스턴스가 저장된 힙 영역의 주소값을 해쉬값으로 변환해서 반환
  • 서로 다른 인스턴스 또는 객체는 다른 주소에 저장돼 있으므로 다른 값 출력

package study.first;

public class Study {

	public static void main(String[] args) {

		Example a = new Example();
		Example b = new Example();
		
		System.out.println(a.hashCode());
		System.out.println(b.hashCode());
		
	}
}

class Example {

	int a = 1;
}

 


 

[ getClass() ]

  • 인스턴스가 가지고 있는 클래스 정보를 반환
  • Class 타입(클래스의 정보만 가지고 있는 타입)의 인스턴스를 생성해서 반환
  • 해당 인스턴스가 같은 클래스 타입인지 확인할 때 사용 가능
  • 부모 클래스라도 클래스 이름이 다르기 때문에 비교하면 False

package study.first;

public class Study {

	public static void main(String[] args) {

		Example a = new Example();
		Example b = new Example();
		Parents d = new Parents();
		Class c = a.getClass();
		
		System.out.println(c);	// Class 타입 인스턴스
		System.out.println(a.getClass());	// 인스턴스 a의 클래스 정보
		System.out.println(a.getClass() == b.getClass());	// true
		System.out.println(a.getClass() == d.getClass());	// false
	}
}

class Example extends Parents {

	int a = 1;
}

class Parents {
	
	int a = 1;
}

 


 

[ toString() ]

  • 인스턴스가 가지고 있는 클래스 이름@16진수 해쉬코드 형태의 문자열 반환
  • 해당 클래스의 유형과 주소값을 의미
  • 인스턴스만 사용할 경우 인스턴스.toString() 메소드가 기본으로 컴파일됨

package study.first;

public class Study {

	public static void main(String[] args) {

		Example a = new Example();
				
		// 두 개가 같은 결과
		System.out.println(a);
		System.out.println(a.toString());
	}
}

class Example {

	int a = 1;
}

 


 

[ equals() ]

  • 두 객체의 메모리 주소값(해시값)을 비교해서 true/false 반환

package study.first;

public class Study {

	public static void main(String[] args) {

		// 같은 메모리 주소를 가리키는 참조변수
		Example a = new Example();
		Example b = a;		
		System.out.println(a.equals(b));	// true
		
		// 다른 메모리 주소를 가리키는 별도의 인스턴스
		Example c = new Example();
		System.out.println(a.equals(c));	// false
	}
}

class Example {

	int a = 1;
}
728x90

댓글

💲 추천 글