인스턴스 정보를 문자열로 반환하는 메서드 입니다.
원형은 생성된 인스턴스의 클래스 이름과 주소 값을 보여 줍니다.
아래는 toString() 메서드 재정의 법
@Overttide
public String toString(){
return abc+def;
★★ toString()메서드를 직접 재정의 하면 객체의
참조 변수를 이용해 원하는 문자열을 표현 할 수 있습니다. ★★
equals() 메서드 원래 기능은 두 인스턴스의 주소값을 비교하여
boolean 값 (참/거짓)을 반환해 주는 것 입니다.
주소 값이 같다면 당연히 같은 인스턴스 입니다.
그런데 서로 다른 주소값을 가질 때도
같은 인스턴스라고 정의 할 수 있는 경우가 있습니다.
따라서 물리적 동일성(인스턴스 메모리 주소가 같음)뿐 아니라
논리적 동일성(논리적으로 두 인스턴스가 같음)을 구현할 때도
equals() 메서드 는 재정의 하여 사용합니다.
두 인스턴스의 주소 값이 같은 경우를 말합니다.
다시말해 두 변수가 같은 메모리를 가리키고 있다는 뜻이지요.
★★String 클래스의 equals() 메서드 사용. 두인스턴스의 문자열 값이 같은지 비교하여 출력★★
★★Integer 클래스의 equals() 메서드 사용. 두인스턴스의 정수 값이 같은지 비교하여 출력★★
getClass (). getName +'@'+Integer.toHexString(hashCode())
자바에서 두 인스턴스가 같다면
hashCode() 메서드에서 반환하는 해시코드 값이 같아야 합니다.
다시말해 equals()메서드를 재정의 했다면
hashCode()메서드도 재정의 해야합니다.
★★ 재정의가 필요한 equals() / ToString() / hashCode() ★★
"값이 같은지 비교하여 출력하는 equals()"
"문자열을 표현 하는 toString()"
"hashCode 값을 반환하는 hashCode()"
-자바 가상 머신이 저장한 인스턴스의
주소값을 10진수로 나타냄서로
다른 메모리의 두 인스턴스가 같다면?
재정의 된 equals() 메서드의
값이 true 동일한 hashCode() 반환 값을 가져야 함
논리적으로 동일함을 위해 equals() 메서드를
재정의하였다면hashCode()
메서드로 재정의 하여 동일한 값이 반환 되도록 함
객체를 복제해 또 다른 객체를 반환해 주는 메서드 입니다.
ex) calss Circle inlements Cloneable{
String 클래스: 동일한 문자열 인스턴스에 대해 동일한 정수가 반환 됨
Integer 클래스: 동일한 정수값의 인스턴스에 대해 같은 정수값이 반환 됨