반응형
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 메서드를 재정의하지 않으면 디폴트 문자열 값은 ”클래스 이름@해쉬 코드값” 이 반환된다.
반응형
'IT > Programming' 카테고리의 다른 글
<Effective Java> RULE 8 Equals를 재정의할 때는 일반 규약을 따르라 (0) | 2023.04.28 |
---|---|
<Effective Java> RULE 9 Equals를 재정의 할때는 반드시 hashCode도 재정의하라 (1) | 2023.04.28 |
<Effective Java> RULE 11 Clone을 재정의할 때는 신중하라 (0) | 2023.04.28 |
<Effective Java> RULE 12 Comparable 구현을 고려하라 (0) | 2023.04.27 |
<Effective Java> RULE 13 클래스와 멤버의 접근 권한은 최소화 하라 (1) | 2023.04.27 |