java&spring

[Java] toString 메서드

sungjine 2022. 3. 18. 00:23
반응형

toString 메서드는 객체에 대한 정의를 보여주기 위해 존재하는 메서드로 문자열을 반환한다.

 

이런 toString 메서드는 Object 클래스의 메서드로써 Java의 모든 클래스는 Object 클래스를 상위 클래스로 두고 있기 때문에 모든 클래스는 toString 메서드를 갖게 된다.

 

만약 toString 메서드를 재정의(override) 하지 않고 그냥 사용하게 된다면 아래와 같은 문자열을 반환하게 된다.

getClass().getName() + '@' + Integer.toHexString(hashCode()) // 클래스의 이름 + @ + hashCode
ex) Test@2e817b38

 

이렇게 재정의되지 않은 toString 메서드는 유의미한 내용이 나오지 않는다.

때문에 사람이 읽기 쉽고 어떤 클래스인지 이해하기 쉽도록 재정의하는 것을 권장한다.

 

아래에는 재정의 방법과 사용 방법에 대한 내용이다.

 

-override

@Override
public String toString() {
    return "클래스를 정의할 수 있는 내용.";   
}

 

-사용 예제

Test test = new Test();
Syetem.out.println(test); // toString 메서드의 내용이 찍힌다.
Syetem.out.println(test.toString()); // 위 코드와 동일한 내용이 찍힌다.

* 사용 방법에서 test와 test.toString()이 같은 내용이 찍히는 이유는 println이 다양한 인수를 받을 수 있도록 여러 개의 println 메서드가 존재하고 test를 넘겼을 때 Object 클래스를 받는 println 메서드에서 test 클래스의 toString 메서드를 실행시키기 때문이다.

반응형