- 어떤 객체의 정보를 문자열로 변환하여 리턴하는 메서드이다
- Object 클래스의 toString() 메서드는 객체의 클래스명과 주소값을 결합한 문자열을 리턴한다.
=> getClass()와 hasgCode() 메서드 결과를 변형하여 문자열로 리턴해준다.
- 일반적으로 객체의 정보란 객체가 가진 고유의 데이터(멤버변수의 값)를 의미한다.
클래스 정의 Object 클래스의 toString() 메서드 오버라이딩을 통해 객체의 멤버변수 값들을
문자열로 결합하여 리턴하도록 해야한다 !
- 출력문 내에서 참조변수명.toString() 메서드 생략이 가능하므로
참조변수명을 출력문 내에 전달 시 자동으로 toString() 메서드가 호출된다.
ex) System.out.println(str);
- 일반적으로 자바에서 제공되는 대부분의 API에는 toString() 메서드가 오버라이딩 되어 있으므로
객체 내의 멤버변수 값을 쉽게 확인 가능하다.
✍
public class test11 {
public static void main(String[] args) {
Person p1 = new Person("홍길동", 20);
System.out.println(p1);
System.out.println(p1.toString());
System.out.println(p1.getClass());
System.out.println(p1.getClass().getName());
}
}
class Person { // Person 클래스
String name;
int age;
public Person(String name, int age) { // 생성자
this.name = name;
this.age = age;
}
}
💻
🔍 Person 객체 생성 후 p1을 출력하자 문자열로 객체의 정보가 리턴된 걸 확인할 수 있다.
그럼 여기서!!!!!! Person 객체에 toString() 메서드를 오버라이딩 한 후 p1을 출력하면 어떤 결과가 나올까?
✍
class Person {
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() { // toString() 메서드 오버라이딩
return "Person [name=" + name + ", age=" + age + "]";
}
}
--> Alt + Shift + S + S 단축키를 통해 toString() 메서드를 자동으로 오버라이딩 할 수 있다.
💻
🔍 위와 다르게 변수에 저장된 값들이 출력된 걸 확인할 수 있다.
'개발 > Java' 카테고리의 다른 글
[Java] try~catch (0) | 2023.03.01 |
---|---|
[Java] Wrapper 클래스 (0) | 2023.02.25 |
[Java] Enum 설계하기 (0) | 2023.02.22 |
[Java] 인터페이스의 장점 (0) | 2023.02.20 |
[Java] Enum (0) | 2023.02.20 |