Object class

Programming/Java 2013. 2. 25. 22:23

toString

 

Object 클래스는 java.lang 패키지 소속이며, 컴파일시 자동 import 됩니다.
또한 모든 클래스는 이 Object 클래스를 자동으로 상속합니다.

 

명시하지 않아도 아래의 import 와 extends 를 사용한 것과 같습니다.

 

import java.lang.*
class DataObject extends Object {
}

 

여기에 더불어 Object 정보를 출력했을 때 default 로 표시되는 메소드는 toString() 입니다.
Object 정보는 클래스이름@고유번호(참조값) 으로 출력됩니다.

 

getClass().getName() + '@' + Integer.toHexString(hashCode())


보다시피 hashCode()는 객체의 고유번호를 10진수로 가져오고 toHexString 이 그 값을 16진수화 합니다.

 

class School
{
}

public class t1 
{
	public static void main( String[] args ) {
		School s = new School();
		System.out.println(s);
		System.out.println(s.toString());
	}
}
/*
School@785d65
School@785d65
*/

 

toString() 메소드는 결과를 알아보기 쉽게 재정의(Overriding)하여 사용하기도 합니다.

 

 

 

equals

 

new 생성자로 생성된 객체의 참조값을 비교할 때 Object 클래스의 equals()를 사용할 수 있습니다.
equals()는 == 연산자와 동일한 결과를 나타냅니다.
toString() 메소드처럼 주로 사용자가 재정의(Overriding)하여 사용합니다.
이것이 == 연산자와의 차이점입니다.

 

School s1 = new School();
School s2 = new School();

System.out.println( s1 );				// School@785d65
System.out.println( s2 );				// School@3bc257
System.out.println( s1 == s2 );			// false
System.out.println( s1.equals(s2) );	// false

 

하지만 이 외에도 미리 equals()를 재정의한 클래스도 있습니다.
String : 문자열 비교
Wrapper : 데이터 타입의 값 비교
Date : 날짜와 시간 비교
File : 경로 비교


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,