티스토리 뷰

 

public class Class75 {
	public static int stVar = 100;
	public int var = 200;
	public String toString() {
		return var + ":" + stVar;
	}
	public static void main(String[] args) {
		Class75 t1 = new Class75();
		t1.var = 300;
		System.out.println(t1);
		Class75 t2 = new Class75();
		t2.stVar=300;
		System.out.println(t2);
	}
}

What is the result?

A. 300:300

200:300

B. 300:100

200:300

C. 300:0

0:300

D. 200:300

200:300

 

정답: B

결과:

300:100
200:300

설명:

public String toString() {} 메소드는 

overrides java.lang.Object.toString() 즉, Object 클래스의 toString()을 오버라이드(재정의)를 한것이다.

그래서 객체를 찍으면 toString() 메소드가 자동으로 호출된다.

toString을 직접 호출하지 않아도 어떤 객체를 System.out.print로 호출하면 자동으로 toString이 호출되도록 약속되어 있다. 이를 통해서 인스턴스의 상태를 쉽게 파악할 수 있게 되었다.

첫번째, 인스턴스 t1 에다가 var를 300으로 바꾼후 출력하니

300:100 이 출력되고

두번째, 인스턴스 t2에다가 stVar를 300으로 변경한 후 출력하니

200:300 이 출력되었다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함