본문 바로가기
Java

자바에서 (String)과 toString()의 차이

by Status Code 2023. 4. 27.

1. (String) - 형변환 (Casting)
(String)은 형변환이라고도 하며, 하나의 객체 타입을 다른 객체 타입으로 변환하는 과정입니다. 이 경우, 괄호 안에 있는 타입(String)으로 변환하려는 타입을 명시해줍니다. 하지만, 형변환은 원본 객체와 변환된 객체 사이에 상속 관계가 있어야만 가능합니다. 즉, 원본 객체가 String 타입이거나 String 타입의 서브클래스여야만 형변환이 가능하며, 그렇지 않은 경우에는 ClassCastException이 발생할 수 있습니다.

 

예를 들어:

Object obj = "Hello, World!";
String str = (String) obj; // 이 경우 형변환이 가능합니다.

 

 

2. toString() - 메소드 호출
toString() 메소드는 객체의 문자열 표현을 반환하는 메소드입니다. 모든 자바 객체는 Object 클래스를 상속하므로, 기본적으로 toString() 메소드를 가지고 있습니다. Object 클래스의 기본 toString() 구현은 객체의 클래스 이름과 해시코드를 문자열로 반환하지만, 일반적으로 클래스에서 이를 재정의하여 객체의 정보를 더 읽기 쉬운 형태로 반환하도록 합니다.

예를 들어:

class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person [name=" + name + ", age=" + age + "]";
    }
}

Person person = new Person("John", 25);
System.out.println(person.toString()); // 출력: Person [name=John, age=25]

자바에서 (String)은 특정 객체를 String 타입으로 형변환하는 데 사용되며, 이는 객체가 String이거나 String의 서브클래스일 때만 가능합니다. 반면에, toString() 메소드는 객체의 문자열 표현을 반환하는 데 사용되며, 이를 클래스에서 재정의하여 의미 있는 문자열 표현을 제공할 수 있습니다.

댓글