IT/Programming / / 2023. 4. 28. 09:15

<Effective Java> RULE 10 toString은 항상 재정의하라.

반응형

 

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 메서드를 재정의하지 않으면 디폴트 문자열 값은 ”클래스 이름@해쉬 코드값” 이 반환된다.

 

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유