logo

자바 toString() 메서드

어떤 객체를 문자열로 표현하고 싶다면, toString() 메서드 존재하게 된다.

toString() 메소드는 객체의 문자열 표현을 반환합니다.

타이프스크립트 foreach 루프

객체를 인쇄하는 경우 Java 컴파일러는 객체에 대해 내부적으로 toString() 메서드를 호출합니다. 따라서 toString() 메서드를 재정의하면 원하는 출력이 반환되며 구현에 따라 객체의 상태 등이 될 수 있습니다.

Java toString() 메소드의 장점

Object 클래스의 toString() 메서드를 재정의하면 객체의 값을 반환할 수 있으므로 많은 코드를 작성할 필요가 없습니다.

toString() 메서드가 없는 문제 이해

참조를 인쇄하는 간단한 코드를 살펴보겠습니다.

Student.java

 class Student{ int rollno; String name; String city; Student(int rollno, String name, String city){ this.rollno=rollno; this.name=name; this.city=city; } public static void main(String args[]){ Student s1=new Student(101,'Raj','lucknow'); Student s2=new Student(102,'Vijay','ghaziabad'); System.out.println(s1);//compiler writes here s1.toString() System.out.println(s2);//compiler writes here s2.toString() } } 

산출:

 Student@1fee6fc Student@1eed786 

위의 예에서 볼 수 있듯이 s1과 s2를 인쇄하면 객체의 해시코드 값이 인쇄되지만 저는 이러한 객체의 값을 인쇄하고 싶습니다. Java 컴파일러는 내부적으로 toString() 메서드를 호출하므로 이 메서드를 재정의하면 지정된 값이 반환됩니다. 아래의 예를 통해 이해해 봅시다.

Java toString() 메소드의 예

toString() 메소드의 예를 살펴보겠습니다.

Student.java

 class Student{ int rollno; String name; String city; Student(int rollno, String name, String city){ this.rollno=rollno; this.name=name; this.city=city; } public String toString(){//overriding the toString() method return rollno+' '+name+' '+city; } public static void main(String args[]){ Student s1=new Student(101,'Raj','lucknow'); Student s2=new Student(102,'Vijay','ghaziabad'); System.out.println(s1);//compiler writes here s1.toString() System.out.println(s2);//compiler writes here s2.toString() } } 

산출:

 101 Raj lucknow 102 Vijay ghaziabad 

위 프로그램에서 Java 컴파일러는 내부적으로 다음을 호출합니다. toString() 메서드를 재정의하면 지정된 값이 반환됩니다. s1 그리고 s2 학생 수업의 개체입니다.

봄 MVC