toString() 메서드의 목적은 인스턴스에 대한 정보를 String문자열로 제공하는 것이다.

 

Object 클래스의 toString()

public String toString() {
	return getClass.getName()+"@"+Integer.toHexString(hashCode());
}

이 toString()을 사용하면 흔하게 보던 '클래스명@16진수 해시 코드'를 확인할 수 있다.

 

그런데, String클래스 인스턴스나 Data클래스 인스턴스의 toString을 호출하면 '클래스명@16진수 해시코드' 형태가 아니라 변수에 저장된 값(문자열, 날짜와 시간)이 출력된다.

그 이유는 String클래스와 Date클래스는 조상클래스인Object에서 상속받은 toString()을 오버라이딩 했기 때문임

 

String str = new String("I LOVE KOREA");
Date dt = new Date();

System.out.println(str);
System.out.println(dt);
System.out.println(str.toString());
System.out.println(dt.toString());
I LOVE KOREA
Mon Apr 20 22:19:38 KST 2020
I LOVE KOREA
Mon Apr 20 22:19:38 KST 2020

'JAVA > java' 카테고리의 다른 글

mutable과 immutable  (0) 2021.02.25
Java 날짜 유효성(포멧) 체크  (1) 2020.07.14
hashCode()  (0) 2020.04.20
private  (0) 2020.04.20
final  (0) 2020.04.20