[Java] 자바 toString() 투스트링 문자 리턴 메서드 알아보자!

2020-12-11


toString 메서드는 Object 클래스에 속해있는 메서드이다. 기능으로는 객체의 문자정보를 "Class(이름)@16진수의 해시 코드"로 Console 창에 출력하는 기능을 가지고 있다.

 

위의 코드는 단순하게 Object 객체를 하나 만들고 해당 객체를 toString 메서드로 출력하는 코드로 위와 같은 결과를 얻을 수 있다.


보통은 Object 자체의 메서드로는 활용하지 않고 Date 와 같은 현재의 날짜 정보를 출력할 때나 아니면, 별개의 클래스에 Override(재정의)하여 사용하곤 한다. 아래는 구체적인 예이다.

 

위는 Date 타입의 객체를 생성한 후 기존에 Object 클래스와 마찬가지로 출력해보았다. 결과적으로 현재의 날짜와 시간이 정상적으로 출력되는 것을 확인할 수 있다.

(Import 시 꼭 java.util.Date;를 선택해주자 sql 이들어간 Date 패키지는 컴파일 오류가 발생한다.)


package ToString;

import java.util.Date;

public class main {

	public static void main(String[] args) {
		
		Student s = new Student("홍길동", "남자");
		System.out.println(s.toString());

	}

}
package ToString;

public class Student {
	private String name;
	private String sex;
	
	public Student(String name, String sex) {
		this.name = name;
		this.sex = sex;
	}
	
	@Override
	public String toString() {
		return "이름은 " +name + "이고 성별은 " + sex + "입니다. ";
	}
	
}

위의 코드는 Override 된 toString을 보여주기 위해 학생이라는 클래스를 만들었으며, 생성자를 통해 이름과 성별을 초기화시켜줄 수 있도록 코드를 작성했다.

 

이후 toString을 단순 Object에 포함된 메서드가 아닌 Student에 들어있는 각필드 값들의 정보를 문자열로 출력할 수 있도록 재정의 하였다. 코드가 굉장히 단순하여 바로 이해할 수 있다. 이처럼 자신의 필요에따라 toString을 오버 라이딩하여, 필요한 정보를 출력하게 할 수 있다. 결과는 아래와 같다.