Language/Java
[Java] Object 클래스 메소드 - toString()
강서월
2022. 11. 7. 16:28
1. 반환되는 문자열
클래스 이름과 함께 구분자로 '@'가 사용되며, 뒤로 인스턴스의 주소를 가리키는 값인 16진수 해시코드가 추가된다.
getClass().getName + '@' + Integer.toHexString(hashCode())
package S1U8;
public class ObjectMethod {
public static void main(String[] args) {
ObjectClass objectClass1 = new ObjectClass(1,"object1");
ObjectClass objectClass2 = new ObjectClass(2,"object2");
System.out.println(objectClass1.toString());
System.out.println(objectClass2.toString());
}
}
class ObjectClass{
int id;
String name;
ObjectClass(int id, String name) {
this.id = id;
this.name = name;
}
}
2. 하위 클래스에서 재정의하여서 사용하는 것을 권장한다.
@Override
public String toString(){
return String.format("id는 %d이고, name은 %s입니다.", id, name);
}
하위 클래스에 다음과 같이 toString() 메서드를 재정의하면 다음과 같이 출력된다.
3. 클래스마다 자체적으로 오버라이딩을 통해 재정의되어있다.
int[] arr = new int[]{1,2,3,4,5};
System.out.println("Object class method toString()로 출력한 arr 값 : " + arr.toString());
System.out.println("Array class method toString()로 출력한 arr 값 : " + Arrays.toString(arr));
Arrays 클래스에서 자체적으로 오버라이딩하여 배열의 주소값이 아닌 배열에 있는 값이 출력된다.