YS's develop story

JAVA ) 클래스의 String toString() 메소드 본문

Java

JAVA ) 클래스의 String toString() 메소드

Yusang 2020. 9. 29. 00:12

안녕하세요 ~

오늘은 Java공부를 하면서 알게된 String toString()메소를 정리하려고 글을 작성하게 되었습니다.

 

바로 소스코드를 살펴봅시다 !

 

아래와 같이 class Circle이 있습니다.

class Circle {
	
	private int x;
	private int y;
	private int radius;
	
	Circle(int x, int y,int radius){
		this.x=x;
		this.y=y;
		this.radius=radius;
	}	
}

 

그리고 c1이라는 이름을 가진 인스턴스를 생성하고,

다음과 같이 소스코드를 작성해 줍시다.

class JavaPractice {

public static void main(String[] args) {
	Circle c1 =new Circle(5,6,10);
	System.out.println(c1);
	System.out.println(c1.toString());  
	}
}

위 코드의 실행결과는 아래와 같습니다.

 

보이는 것과 같이 c1이든 c1.toString이든 그 결과가 같습니다.

그 이유는 c1만 작성해도 자바는 내부적으로 toString을 호출하도록 약속이 되어 있기 때문이죠

즉 c1만 작성해도 암시적으로 c1.toString이 호출됩니다.

 

 

그럼이제 Circle이라는 클래스를 아래와 같이 살짝만 바꿔 줍시다.

class Circle {
	private int x;
	private int y;
	private int radius;
	
	Circle(int x, int y,int radius){
		this.x=x;
		this.y=y;
		this.radius=radius;
	}
	public String toString() {
		return ("(" + x +","+ y +")"+" 반지름 : "+radius);
	}
}
class JavaPractice {

public static void main(String[] args) {
	Circle c1 =new Circle(5,6,10);
	System.out.println(c1);
	System.out.println(c1.toString());  
	}
}

 

그리고 결과 값은 아래와 같이 됩니다.

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

마찬가지로 System.out.println(c1), System.out.println(c1.toString)의 결과 값이 같죠

 

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

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

 

Comments