특징
1. String을 제외한 참조 자료형에 더하기 연산 수행 -> 자동으로toString() 메소드가 호출되어 객체를 String 값으로 연산 수행
2. toString() 구현은 Overriding 을 적용해서 한다
→ 구현해놓은 후 toString()을 호출하면 구현해놓은 애가 알아서 호출된다
예) Name과 phone을 가지고 있는 MemberDTO
public String toString() {
return "Name" + name + "Phone" + phone;
}
특징
1. ==, != 는 값이 아닌 주소값을 비교한다
( 같은 값이라도 주소값이 다르면 다르다고 판단 )
2. equals() 함수도 Overriding 하지 않으면 hashCode()의 값 (=주소값) 을 비교한다
→ 필요할 때, Overriding 해서 사용해줘야 한다.
▶ 흔히 우리가 문자열 비교를 위해 사용하는 equals()의 경우 String 클래스에서 오버라이딩을 함으로써 문자열 간의 비교가 가능해졌다.
Overriding 할 때 지켜야하는 5가지 조건
: 재귀 / 대칭 / 타동적 / 일관 / null과 비교