IT/Programming
<Effective Java> RULE 10 toString은 항상 재정의하라.
Thnk
2023. 4. 28. 09:15
반응형
toString의 일반 규약
- 반환하는 문자열은 사람이 읽기 쉽도록 간략하지만 유용한 정보를 제공해야 한다.
- 모든 하위 클래스는 이 메서드를 재정의함이 바람직하다.
Object 클래스에서는 toString 메서드를 제공하여 해당 클래스 혹은 개체를 대표하는 문자열을 반환할 수 있게 하고 있다.
다음 예제 코드는 toString 메서드를 재정의하지 않은 Def_toString 클래스와 재정의한 My_toString 클래스를 정의하고 개체를 생성하여 확인하는 코드이며 더불어 int 형식과 String 형식도 테스트하고 있다.
//toString 메서드를 재정의하지 않은 클래스
public class Def_toString {
int value;
public Def_toString(int value){
this.value = value;
}
}
//toString 메서드를 재정의한 예
public class My_toString {
int value;
public My_toString(int value){
this.value = value;
}
public String toString(){
return Integer.toString(value);
}
}
//toString 메서드 재정의 예
public class Program {
public static void main(String[] args){
Def_toString dts = new Def_toString(1);
System.out.println(dts.toString());
System.out.println(dts.hashCode());
My_toString mts = new My_toString(1);
System.out.println(mts.toString());
int i=3;
System.out.println(Integer.toString(i));
String s="https://blog.naver.com/vr_worldnetwork";
System.out.println(s.toString());
}
}
/**
Def_toString@15db9742
366712642
1
3
https://blog.naver.com/vr_worldnetwork
*/
만약 개발자가 정의한 형식에 toString 메서드를 재정의하지 않으면 디폴트 문자열 값은 ”클래스 이름@해쉬 코드값” 이 반환된다.
반응형