본문 바로가기

java

toString() 메서드에 대한 이해

class Apple { }

public class GenericsExample05 {
    public static void main(String[] args) {

	ArrayList list = new ArrayList();
        list.add(new Apple());
        list.add(1);
        list.add("1");
        System.out.println(list.toString());
        
    }
}

출력 값 :
[javaStudy07.Apple@880ec60, 1, 1]

list.toString()은 Collection.toString()에서 오버라이딩 한 것이 실행된다.

 

Collection.toString()에서 컬력센데 담긴 각 요소들을 String.valueOf(Object)메서드를 통해서 String으로 표현하여 리턴한다.

 

String.valueOf(Object)는 obj.toString()을 반환하는데 

-> Returns:a string representation of the object. (getClass().getName() + '@' + Integer.toHexString(hashCode()))

 

String.valueOf(int i)등.. 기본형은 다 각 타입에 맞춰서 매개변수로 오버로딩이 되어있기 때문에,

알아서 String으로 변환되서 반환되지만

객체 같은 경우는 String.valueOf() 메서드에 오버로딩 되어있는게 없어서, Obj.toString()으로 넘어가서 그 객체의 hasCode가 반환된다. 

 

즉, 사용자 정의로 만든 객체는 따로 Object 클래스의 String.toString()을 오버라이딩을 해주지 않으면,

Object 클래스의 String.toString()이 실행이 되어 hasCode가 반환된다.

 

 

'java' 카테고리의 다른 글

JDK 설치 후 환경변수 설정  (0) 2021.11.29
reflection  (0) 2021.10.31
제어자, 내부 클래스  (0) 2021.10.05
parameter, argument  (0) 2021.08.15
java) 상속의 constructor  (0) 2021.02.20