차례:
비디오: Java - Object 클래스 (2/5) : toString 2024
toString
메서드는 Java에서
String
객체 표현을 반환합니다. 디폴트에서는,
toString
메소드는, 오브젝트의 클래스 명과 해시 코드를 돌려줍니다. 여기에서
toString
메서드를 사용하는 방법과 더 유용한 문자열을 만들기 위해 자신의 클래스에서이 메서드를 재정의하는 방법을 배웁니다.
Java에서 toString 사용
다음은
toString
메서드를 작동시키는 간단한 프로그램입니다.
"Employee emp = new Employee ("Martinez ", 999)"->
공용 클래스 TestToString
public static void main (String [] args) 앤서니 ");
시스템. 아웃. println (emp. toString ());
}
}
클래스 Employee
{
private String lastName;
전용 문자열 firstName;
public Employee (String lastName, String firstName)
this. lastName = 성;
이것. firstName = firstName;
}
}
이 코드는 새
Employee
객체를 만듭니다.
toString
메서드의 결과가 콘솔에 인쇄됩니다. 이 프로그램을 실행하면 다음 행이 콘솔에 인쇄됩니다.
Employee @ 82ba41
참고:
82ba41
)는 의심의 여지없이 시스템에서 달라집니다. 이 예에서는
toString
에 대한 명시 적 호출이 실제로 필요하지 않음이 밝혀졌습니다.
Main
메소드의 두 번째 줄 (
System)을 쉽게 작성할 수 있습니다. 아웃. println (emp);
println
메소드는 전달한 객체의
toString
메소드를 자동으로 호출하기 때문입니다.
Java에서 toString 재정의
toString
의 기본 구현은 대부분의 경우별로 유용하지 않습니다. 예를 들어 해시 코드를 보면
Employee
객체에 관해 많은 것을 배울 수 있습니다.
toString
메서드가 직원의 이름과 같은 객체의 실제 데이터를 반환하면 더 좋지 않겠습니까?
그렇게하려면 클래스에서
toString
메서드를 재정의해야합니다. 실제로 Java에서 객체 지향 프로그래밍의 기본 지침 중 하나는
toString
을 항상
재정의하는 것입니다.
toString 를 오버라이드하는 Employee
클래스를 가진 간단한 프로그램이 있습니다: public class TestToString
public static void main (String [] args)
{
직원 emp = 신입 사원 ("Martinez",
"Anthony");
시스템. 아웃. println (emp. toString ());
}
}
클래스 Employee
{
private String lastName;
전용 문자열 firstName;
public Employee (String lastName, String firstName)
{
this.lastName = 성;
이것. firstName = firstName;
}
public String toString ()
{ return "Employee ["
+ this. firstName + ""
+이 (가) 있습니다. lastName + "]";
}
}
이 프로그램을 실행하면 다음 줄이 콘솔에 표시됩니다.
Employee [Anthony Martinez]
출력은 클래스 이름과 몇 가지 데이터로 구성됩니다 괄호 안에있는 객체에서. 이 규칙은 Java 프로그래밍에서 일반적입니다.
위 예제의 유일한 문제점은 클래스 이름이
toString
메소드에 하드 코딩되어 있다는 점입니다.
getClass
메서드를 사용하여 런타임에 실제 클래스 이름을 검색 할 수 있습니다.
public String toString ()
{
반환합니다. getClass (). getName () + "["
+ this. firstName + ""
+이 (가) 있습니다. lastName + "]";
}
여기서
getClass
메소드는 현재 객체의 클래스를 나타내는
Class
객체를 반환합니다. 다음에,
Class
객체의
getName
메소드를 사용해, 실제의 클래스 명을 취득합니다.