Java에서 toString()의 역할

조회수 1039회
/*
 * 다음 주민등록 번호의 중간에 삽인된 -를 지우고 공백으로 채워서 출력하는 프로그램을
 * 작성해보자. 단 StringBuilder 클래스를 활용하여 빈번한 문자열의 생성이 발생하지
 * 않도록 해야 한다. 990925-1012999
 */

package ch11;

public class Ch11_2_Q1 {

    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("990925-1012999");
        sb.replace(6, 7, " ");
        System.out.println(sb.toString());
    }
}

주석에 표시된 위의 예제를 풀고있는데 여기서 toString()에 대해 이해가 잘 가지 않습니다.

출력부분을 System.out.println(sb); 로 해도 같은 결과값을 얻는데 변수를 그대로 출력하는 것과 toString()를 이용해서 출력하는 것과 무엇이 차이인가요?

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    자바는 객체지향언어입니다.

    자바에서 최상의 클래스는 Object 이고 toString 이 구현되어 있습니다.

    또한 객체를 출력하면 toString 메소드의 결과를 리턴하게 되어 있습니다.

    모든 클래스는 결국 Object 가 최상위 부모이므로 toString 은 무조건 구현되어 있는 셈입니다.

    StringBuilder 의 경우 내부적으로 toString 을 오버라이딩하고 있습니다.

    즉 StringBuilder 를 사용하고 명시적으로 객체.toString() 을 호출하나 객체를 대입해서 출력하나 같습니다.

    • 답변해주셔서 감사합니다.즉, 같은 일을 하는것이고 명시적으로 객체.toString()을 하지않아도 자바가 알아서 해주고있다는 내용인것이죠? 걸음마 2019.3.3 16:44
    • 네 객체를 출력하면 toSgtring 이 호출된다고 생각하면 됩니다. 정영훈 2019.3.4 00:55

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)