[Java] 5.6.3 toString 메서드 (Object 클래스)

Object 클래스에서는 toString 메서드를 제공하여 해당 클래스 혹은 개체를 대표하는 문자열을 반환할 수 있게 하고 있습니다.

기본 값 형식들은 정적 클래스의 toString 정적 메서드를 통해 해당 값을 문자열로 변환할 수 있게 제공하고 있습니다.

int i=3;
System.out.println(Integer.toString(i));

그리고 String 형식은 내용을 출력하게 정의하고 있습니다. 예를 들어 문자열 값 “https://ehpub.co.kr”을 대입하면 toString 메서드의 반환값도 ”https://ehpub.co.kr” 입니다.

String s="https://ehpub.co.kr";
System.out.println(s.toString());

만약 개발자가 정의한 형식에 toString 메서드를 재정의하지 않으면 디폴트 문자열 값은 ”클래스 이름@해쉬 코드값”입니다.

다음 예제 코드는 toString 메서드를 재정의하지 않은 Def_toString 클래스와 재정의한 My_toString 클래스를 정의하고 개체를 생성하여 확인하는 코드입니다. 더불어 int 형식과 String 형식도 테스트하고 있습니다.

//toString 메서드를 재정의하지 않은 클래스
public class Def_toString {
	int value;
	public Def_toString(int value){
		this.value = value;
	}
}
//toString 메서드를 재정의한 예
public class My_toString {
	int value;
	public My_toString(int value){
		this.value = value;
	}
	public String toString(){	
		return Integer.toString(value);
	}
}
//toString 메서드 재정의 예
public class Program {
	public static void main(String[] args){
		Def_toString dts = new Def_toString(1);		
		
		System.out.println(dts.toString());
		System.out.println(dts.hashCode());
		
		My_toString mts = new My_toString(1);		
		
		System.out.println(mts.toString());	
		
		int i=3;		
		System.out.println(Integer.toString(i));
		
		String s="https://ehpub.co.kr";
		System.out.println(s.toString());
	}
}

실행 결과

Def_toString@15db9742
366712642
1
3
언제나 휴일