inflearn logo
강의

Course

Instructor

Do it! Introduction to Java Programming with Eun Jong

Base Class (1)

toString 관련 질문

Resolved

236

asil

8 asked

0

안녕하세요

 

toString 관련 질문입니다

 

Book book = new Book("asdf", " zxcv");

System.out.println(book);

부분인데요

 

book 넣으면 처음엔

object.Book@237894 가 나왔는데요

이부분이

getClass().getName() + "@" + Integer.toHexString(hashCode());

이렇게 되어있는 건 이해했습니다

 

이해가 안 되는 건

왜 toString() 이 호출되는지 입니다.

 

System.out.println은 book이라는 객체를 매개변수로 넣었는데 왜 book(또는 그 부모 class)의 toString을 찾아서 화면에 호출하나요?

 

제 생각엔 System.out.println 말고 다른 곳에서 써도 book은 toString()을 반환할 거 같은데

1. 왜 book을 넣으면 toString을 반환하나요?

2. book을 넣으면 toString을 반환하게 하는 관련 소스 위치를 알 수 있을까요?

java

Answer 1

6

asil

누가 보실 지는 모르겠지만 혹시 해당 강의 보시는 분들 도움 되시라고 알아내서 여기에 작성합니다

 

println, print 등은 Object가 매개변수일 때(위 상황의 경우 book)

내부에 String.valuejOf을 호출합니다

 

valueOf는 Object를 받아서 toString을 호출합니다

 

즉,

System.out.println(book)

-> public void println(Object x)

{ String s =  String.valueOf(x) ... }

->public static String valueOf(Object obj)

{ return (obj == null) ? "null" : obj.toString(); }

 

이런식입니다.

 

이후 toString이 재정의 되어있으면 그걸 따를 거고 아니면 Object의 toString을 호출하겠죠

이클립스 활성화가 안되는부분이있어요ㅜㅜ

0

430

1

책에 자료실

0

495

1

StudentID

0

554

1

인터페이스와 가상 메서드

0

354

1

11분쯤 price, int price 질문

0

350

1

For문 (중첩된 반복문) 구구단 문의 드립니다.

0

782

1

반복문 별 출력 연습문제

0

390

1

비트 연산자 질문입니다.

1

367

1

Scheduler scheduler = null 굳이 하는 이유가 있나요

1

333

0

Class간의 연결

1

292

1

선생님 스킬

0

392

1

초기화 에러!!!

0

282

1

선생님 영상에서 목소리가 좀 작은 것 같습니다 ㅠㅠ

2

300

0

출력

2

230

0

Main 함수 저번 강의 거가 나와요

0

312

1

결과값오류

1

222

0

printIn 함수 질문

0

449

1

24분 57초에 질문 있습니다!!

0

359

1

1분36초쯤에 말씀하시는 자바닥??그거 보라고 하셨는데 자바닥이 뭐죠..?

0

247

1

메서드와 생성자

0

393

2

참조형 데이터 타입은 클래스 이름과 같아야 하나요?

0

283

1

반환값은 정수 밖에 안되나요?

0

271

1

9분33초 설명!!부탁 드립니다!

0

297

1

48분쯤에 {"B","C","D""} 를 왜 {'B','C','D'}로 바꿨죠?

0

294

1