본문

toString method

반응형

# toString method

toString()은 인스턴스에 대한 정보를 문자열(String)로 제공할 목적으로 정의한 것이다.

클래스를 작성할 때 toString()을 오버라이딩하지 않는다면, 16진수의 해시코드를 얻게 될 것이다.


Source01) CardToString.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
class Card {
    String kind;
    int number;
 
    Card() {
        this("SPADE"1);
    }
 
    Card(String kind, int number) {
        this.kind = kind;
        this.number = number;
    }
}
 
public class CardToString {
 
    public static void main(String[] args) {
        Card c1 = new Card();
        Card c2 = new Card();
 
        System.out.println(c1.toString());
        System.out.println(c2.toString());
 
    }
}
cs

Result)
1
2
toStringMethod.Card@2a139a55
toStringMethod.Card@15db9742
cs


이제 Card클래스에서도 toString()을 오버라이딩해서 보다 쓸모 있는 정보를 제공할 수 있도록 바꿔 보자.

Source02) CardToString02.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package toStringMethod;
 
class Card_ {
    String kind;
    int number;
 
    Card_() {
        this("SPADE"1);
    }
 
    Card_(String kind, int number) {
        this.kind = kind;
        this.number = number;
    }
 
    public String toString() {
        // Card인스턴스의 kind와 number를 문자열로 반환한다.
        return "kind : " + kind + ", number : " + number;
    }
}
 
public class CardToString02 {
 
    public static void main(String[] args) {
        Card_ c1 = new Card_("HEART"10);
        Card_ c2 = new Card_();
 
        System.out.println(c1.toString());
        System.out.println(c2);
 
    }
}
cs


Result)
1
2
kind : HEART, number : 10
kind : SPADE, number : 1
cs




출처 및 참고자료 : JAVA의정석(남궁성 저)

반응형

공유

댓글