본문 바로가기

JAVA

[JAVA] 자바 - toString()으로 주소값 불러오는 것을 해결해보자

728x90

클래스를 여러개 만들어서 작업하거나 객체를 불러와서 print할 때 알수없는 주소값을 출력하는 것을 여러번 겪게 되었습니다.

toString()을 쓰면 주소값을 문자로 불러올 수 있는데, 무작정 toString() 메소드를 쓴다고 해서 문자열이 짜잔하고 나오는 것은 아닙니다 !

public class Test {

	public static void main(String[] args) {
		String s = "superman";
		System.out.println(s.toString());
        
		Test t = new Test(); // 객체 생성
		System.out.println(t.toString()); // 이때 주소값이 불러와진다.
	}

}

 객체를 불러올때 toString으로 불러오면 문자열 그대로 출력할 수 있습니다.
 위 코드에서 왜 주소값이 불러와질까?

 "모든 class는 object를 상속받고있다." 
 String 클래스도 object를 상속받고있는 것 !
public class Test {

	@Override
	public String toString() {
		return "It's me";
	}
	public static void main(String[] args) {
		Test t = new Test();
		System.out.println(t.toString());
	}

}

String 클래스의 toString()을 오버라이딩해주면 내가 불러오고 싶은 값을 문자열 그대로 출력할 수 있게됩니다.