toString()

2020. 3. 10. 15:14자바 Java/자바 공부 java study

반응형

모든 클래스의 가장 최상위 클래스는  Object 클래스 이다. 

 

자바에서 제공하는 모든 클래스들은 계층 구조로 되어있고, 그 최상위로 올라가면 Object 라는 클래스가 존재한다. 

 

우리가 일반적으로 생성하는 클래스들도 extends 로 직접 상속하지는 않았지만 자바 컴파일러는 일반 클래스를 

 

Object 하위 클래스로 자동설정하게 되어있다. 

 

결론은 자바 라이브러리나 유저가 만든 모든 클래스는 Object 클래스를 부모클래스로 상속받아서 사용하게 된다. 

 

 

 

Object 클래스에는 어떤 메소드들이 있을까?

 

toString 메소드란? 

-객체가 가지고 있는 정보나 값들을 문자열로 만들어 리턴하는 메소드 이다. 

 

 

java.lang.Object 클래스가 toString 메서드가 제공하지만, 해당 메서드를 호출하면 반환되는 문자열은 사용자가 보고 싶어하는 문자열 값 형태가 아니다. 값은 클래스의 이름과 @ 문자 기호와 16진수로 표현된 해시 코드가 붙은 문자열이 반환된다.

toString을 재정의 하지 않고 호출 할 경우 

public class Main { public static void main(String[] args) {
	Product product = new Product(1, "Toy");   // ch10.Product@70dea4e 출력 
    System.out.println(product); 
    }
}

 

 

 

 

 

 

 

 

 

toString을 재정의 할 경우 

static class Student2 {
    String name;
    int age;
   
    public String toString() {
      return String.format("이름: %s\n나이: %d\n", name, age);
    }
  }
  
  public static void main(String[] args) {
  	Student2 s2 = new Student2();
    s2.name = "임꺽정";
    s2.age = 30;
    System.out.println(s2.toString()); // 재정의한 toString() 호출
   
  }
  
 // 이름: 임꺽정                                
  //나이: 30

 

 

 

 

toString 을 간편히 override 하는 방법 

 

 

반응형