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을 오버 라이딩하여, 필요한 정보를 출력하게 할 수 있다. 결과는 아래와 같다.