Java

Java_String toString() 메소드

검은고양이개발자 2022. 12. 30. 12:56
반응형

 

 

 

 

public class ToString {
    public static void main(String[] args) {
        Plus plus = new Plus(3, 5, 8);
        System.out.println(plus);
        System.out.println(plus.toString());
    }

    static class Plus {

        private int a;
        private int b;
        private int c;

        Plus(int a, int b, int c) {
            this.a = a;
            this.b = b;
            this.c = c;
        }
    }
}
//출력
연습2.ToString$Plus@27d6c5e0
연습2.ToString$Plus@27d6c5e0

String toString() 메서드가 어떤 역할을 하는지 알아보자

먼저 Plus class를 만들고 인스턴스화했을 때 

plus를 출력하면 위에 코드와 같이 ToString$Plus@27d6c5e0 이런 식으로 나온다.

# plus.toString()과 plus는 같다 (. toString()을 붙이지 않으면 시스템이 알아서 붙여준다)

 

여기서 String toString()메소드를 이용하면

public class ToString {
    public static void main(String[] args) {
        Plus plus = new Plus(3, 5, 8);
        System.out.println(plus);
        System.out.println(plus.toString());
    }

    static class Plus {

        private int a;
        private int b;
        private int c;

        Plus(int a, int b, int c) {
            this.a = a;
            this.b = b;
            this.c = c;
        }
        public String toString(){
            return ("("+a+"+"+b+")"+"="+c);
        }

    }
}
//출력
(3+5)=8
(3+5)=8

위에 코드와 같이 System.out.println()의 인자값으로 인스턴스의 이름만 넣었을 뿐인데 toString메서드의 값이 출력됩니다.

정리를 하자면 우리는 클래스 내부에서 public String toString()라는 메소드를 선언해서 

System.out.println(인스턴스의 이름)을 호출 했을 때 출력 될 문자열을 지정할 수 있다

 

반응형