23-11-10 <Object Class>

sun·2023년 12월 11일
0

java

목록 보기
15/38

toString 메서드

  • 인스턴스 정보를 문자열로 반환하는 메서드 입니다.

  • 원형은 생성된 인스턴스의 클래스 이름과 주소 값을 보여 줍니다.

아래는 toString() 메서드 재정의 법

@Overttide

public String toString(){

return abc+def;

★★ toString()메서드를 직접 재정의 하면 객체의

참조 변수를 이용해 원하는 문자열을 표현 할 수 있습니다. ★★

equals() 메서드

equals() 메서드 원래 기능은 두 인스턴스의 주소값을 비교하여

boolean 값 (참/거짓)을 반환해 주는 것 입니다.

주소 값이 같다면 당연히 같은 인스턴스 입니다.

그런데 서로 다른 주소값을 가질 때도

같은 인스턴스라고 정의 할 수 있는 경우가 있습니다.

따라서 물리적 동일성(인스턴스 메모리 주소가 같음)뿐 아니라

논리적 동일성(논리적으로 두 인스턴스가 같음)을 구현할 때도

equals() 메서드 는 재정의 하여 사용합니다.

두 인스턴스의 주소 값이 같은 경우를 말합니다.

다시말해 두 변수가 같은 메모리를 가리키고 있다는 뜻이지요.

★★String 클래스의 equals() 메서드 사용. 두인스턴스의 문자열 값이 같은지 비교하여 출력★★

★★Integer 클래스의 equals() 메서드 사용. 두인스턴스의 정수 값이 같은지 비교하여 출력★★

hashCode() 메서드 원형 :

getClass (). getName +'@'+Integer.toHexString(hashCode())

자바에서 두 인스턴스가 같다면

hashCode() 메서드에서 반환하는 해시코드 값이 같아야 합니다.

다시말해 equals()메서드를 재정의 했다면

hashCode()메서드도 재정의 해야합니다.

★★ 재정의가 필요한 equals() / ToString() / hashCode() ★★

"값이 같은지 비교하여 출력하는 equals()"

"문자열을 표현 하는 toString()"

"hashCode 값을 반환하는 hashCode()"

hashCode()의 반환 값 :

-자바 가상 머신이 저장한 인스턴스의
주소값을 10진수로 나타냄서로
다른 메모리의 두 인스턴스가 같다면?
재정의 된 equals() 메서드의
값이 true 동일한 hashCode() 반환 값을 가져야 함
논리적으로 동일함을 위해 equals() 메서드를
재정의하였다면hashCode()
메서드로 재정의 하여 동일한 값이 반환 되도록 함

clone() 메서드 : Object에 오른편에 선언.

객체를 복제해 또 다른 객체를 반환해 주는 메서드 입니다.

ex) calss Circle inlements Cloneable{

String 클래스: 동일한 문자열 인스턴스에 대해 동일한 정수가 반환 됨

Integer 클래스: 동일한 정수값의 인스턴스에 대해 같은 정수값이 반환 됨

Wrapper 클래스

0개의 댓글