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언제나휴일