본문 바로가기

TEST

테스트9

java.lang.Object는 toString 메소드의 구현을 제공하지만, 반환하는 문자열은 일반적으로 클래스 사용자가 보고 싶어하는 문자열이 아닙니다.

그것은 클래스 이름 뒤에 "at"기호 (@)와 부호없는 16 진수 해시 코드의 표현 (예 : "PhoneNumber @ 163b91")입니다.

toString에 대한 일반 계약에 따르면 반환 된 문자열은 간결해야합니다.

그러나 사람이 읽을 수있는 유익한 표현 "[JavaSE6]" 동안 "PhoneNumber @ 163b91"은 간결하고 읽기 쉽기 때문에 논쟁의 여지가 있습니다.

"(707) 867-5309"와 비교할 때 매우 유익합니다. toString 계약은 모든 하위 클래스가 이 메서드를 재정의하는 것이 좋습니다.

참으로 조언!

equals 및 hashCode 계약을 준수하는 것만 큼 중요하지는 않지만 (항목 8, 항목 9), 좋은 toString 구현을 제공하면 클래스를 만들 수 있습니다.

사용하기 훨씬 더 즐겁습니다. toString 메서드가 자동으로 호출됩니다.

object가 println, printf, string concatenation 연산자에 건네 질 때, 또는 어설 션, 또는 인쇄 디버거 printf 메소드가 플랫폼에 추가되었습니다.

릴리스 1.5에서는, String.format를 포함한 관련 메소드도 포함되어 있었습니다. 대략 C의 sprintf와 같습니다.

PhoneNumber에 좋은 toString 메서드를 제공하면 유용한 진단 메시지는 다음과 같이 쉽습니다.

System.out.println ( "연결 실패 :"+ phoneNumber);

프로그래머는 이러한 방식으로 진단 메시지를 생성합니다.

당신은 toString을 오버라이드하지만, 그렇게하지 않으면 메시지는 유용하지 않을 것이다. 

혜택 좋은 toString 메서드를 제공하는 것은 클래스의 인스턴스를 넘어 이러한 인스턴스, 특히 컬렉션에 대한 참조를 포함하는 개체입니다. 어느

지도를 인쇄 할 때 "{Jenny = PhoneNumber @ 163b91}" 또는 "{Jenny = (707) 867-5309}" 실용적 일 때, toString 메소드는 흥미로운 개체에 포함 된 정보, 전화 번호 예제와 마찬가지로 표시됩니다. 물체가 크거나 도움이되지 않는 상태가 포함되어있는 경우 실용적이지 않습니다.

문자열 표현에. 이러한 상황에서 toString은 "맨하탄 백서 (1487536 목록)"와 같은 요약 또는 "스레드 [main, 5, main]". 이상적으로 문자열은 자체적으로 설명해야합니다. (그만큼 실례는 이 시험을 막습니다.)

'TEST' 카테고리의 다른 글

테스트11  (0) 2017.07.31
테스트10  (0) 2017.07.31
테스트7  (0) 2017.07.30
테스트6  (0) 2017.07.29
테스트5  (0) 2017.07.29