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 |