1. Object클래스
- 모든 클래스의 최고 조상. 오직 11개의 메서드만을 가지고 있다.
- notify(), wait() 등은 쓰레드와 관련된 메서드이다.
Object클래스의 메서드 | 설 명 |
protected Object clone() | 객체 자신의 복사본을 반환한다. |
public boolean equals(Object obj) | 객체 자신과 객체 obj가 같은 객체인지 알려준다.(같으면 true) |
protected void finalize() | 객체가 소멸될 때 가비지 컬렉터에 의해 자동적으로 호출된다. 이 때 수행되어야하는 코드가 있을 때 오버라이딩한다. (거의 사용안함) |
public Class getClass() | 객체 자신의 클래스 정보를 담고 있는 Class인스턴스를 반환한다. |
public int hashCode() | 객체 자신의 해시코드를 반환한다. |
public String toSring() | 객체 자신의 정보를 문자열로 반환한다. |
public void notify() | 객체 자신을 사용하려고 기다리는 쓰레드를 하나만 깨운다. |
public void notifyAll() | 객체 자신을 사용하려고 기다리는 모든 쓰레드를 깨운다. |
public void wait() public void wait(long timeout) public void wait(long timeout, int nanos) |
다른 쓰레드가 notify()나 notifyAll()을 호출할 때까지 현재 쓰레드를 무한히 또는 지정된 시간(timeout, nanos)동안 기다리게한다. (timeout은 천 분의 1초, nanos는 10(의9승)분의 1초) |
2. equals(Object obj)
- 객체 자신(this)과 주어진 객체(obj)를 비교한다. 같으면 true, 다르면 false
- Object클래스의 equals()는 객체의 주소를 비교(참조변수 값 비교)
public class Ex02 {
static class Value {
int value; //this.value
Value(int value) {
this.value = value;
}
public boolean equals(Object obj) {
if(obj instanceof Value) return false;
Value v = (Value)obj;
return this.value == v.value;
}
}
public static void main(String[] args) {
Value v1 = new Value(10);
Value v2 = new Value(10);
if (v1.equals(v2)) {
System.out.println("같다");
} else {
System.out.println("다르다");
}
}
}
3. equals(Object obj)의 오버라이딩
- 인스턴스 변수(iv)의 값을 비교하도록 equals()를 오버라이딩해야 한다.
class Person {
long id;
public boolean equals(Object obj) {
if(obj instanceof Person)
return id ==((Person)obj).id;
else
return false;
}
Person(long id) {
this.id = id;
}
}
'Java' 카테고리의 다른 글
88. String클래스, 문자열 비교, 빈 문자열- 패스트캠퍼스 백엔드 부트캠프 3기 (0) | 2024.12.27 |
---|---|
87. hashCode(), toString() - 패스트캠퍼스 백엔드 부트캠프 3기 (0) | 2024.12.26 |
85. 연결된 예외 - 패스트캠퍼스 백엔드 부트캠프 3기 (1) | 2024.12.26 |
84. 사용자 정의 예외 만들기, 예외 되던지기 - 패스트캠퍼스 백엔드 부트캠프 3기 (0) | 2024.12.26 |
83. 예외선언하기, finally블럭 - 패스트캠퍼스 백엔드 부트캠프 3기 (0) | 2024.12.24 |