Java

[인프런] toString( )

sejin2 2024. 6. 2. 20:06

Object.toString(  ) 메서드는 객체의 정보를 문자열 형태로 제공하여 디버깅과 로깅에 유용하게 사용된다.

Object가 제공하는 toString(  )메서드는 기본적으로 패키지를 포함한 객체의 이름과 객체의 참조값(해시코드)를 16진수로 제공한다. 

 

toString(  ) 오버라이딩

 

Object.toString(  ) 메서드가 클래스 정보와 참조값을 제공하지만 이 정보만으로 객체의 상태를 적절히 나타내지 못하므로, toString(  )을 오버라이딩 해서 정보를 제공하는 것이 일반적이다. 

오버라이딩 하지 않으면 16진수로 나옴

위와 같은 모양으로 출력됨

 

toString(  )을 오버라이딩 하면, 

@Override
public String toString() {
    return "Dog{" +
            "dogName='" + dogName + '\'' +
            ", age=" + age +
            '}';
}

정해진 형태로 출력이 된다.

 

toString( )은 기본적으로 객체의 참조값을 출력하는데, 재정의하게 되면 객체의 참조값을 출력할 수 없어진다. 
이럴때 사용하는 코드가 있다. 

String refValue= Integer.toHexString(System.identityHashCode(dog1));
System.out.println("refValue = " + refValue);

System.identityHashCode( ) 메서드는 주어진 객체의 고유한 해시코드를 반환한다. 즉, 객체의 메모리 주소를 기반으로 한 해시코드를 반환한다. 

그 다음 Integer.toHexString( ) 메서드는 주어진 정수를 16진수 문자열로 반환한다. 

 

 

 

 

 

공부 내용: [인프런] 김영한의 실전 자바 - 중급 1편

'Java' 카테고리의 다른 글

Enhanced for문  (0) 2024.06.03
[인프런] equals( )  (0) 2024.06.02
[인프런] Object 클래스  (0) 2024.06.02
[인프런] java.lang 패키지  (0) 2024.06.02
[인프런] 객체 지향  (0) 2024.05.28