IT 개발노트

java.lang 패키지(Object클래스) 본문

기초튼튼/JAVA

java.lang 패키지(Object클래스)

limsungju 2019. 7. 4. 15:13

1. Object클래스
1.1 Object클래스의 메서드
- 모든 클래스의 최고 조상. 오직 11개의 메서드만을 가지고 있다.
- notify(), wait() 등은 쓰레드와 관련된 메서드이다.
- equals(), hashCode(), toString()은 적절히 오버라이딩해야 한다.

1.2 equals(Object obj)
- 객체 자신과 주어진 객체(obj)를 비교한다. 같으면 true, 다르면 false를 반환한다.
- Object클래스에 정의된 equals()는 참조변수 값(객체의 주소)을 비교한다.
- equals()를 오버라이딩해서 인스턴스변수의 값을 비교하도록 바꾼다.

1.3 hashCode()
- 객체의 해시코드(int타입의 정수)를 반환하는 메서드(해시함수)
- 다량의 데이터를 저장&검색하는 해싱기법에 사용된다.
- Object클래스의 hashCode()는 객체의 내부주소를 반환한다.
- equals()를 오버라이딩하면, hashCode()도 같이 오버라이딩 해야한다.(필수x)
-> equals()의 결과가 true인 두 객체의 hash code는 같아야하기 때문이다.
- System.identityHashCode(Object obj)는 Object클래스의 hashCode()와 동일한 결과를 반환한다.

1.4 toString()
- 객체의 정보를 문자열(String)로 제공할 목적으로 정의된 메서드

1.5 clone()
- 객체 자신을 복제(clone)해서 새로운 객체를 생성하는 메서드
- Cloneable인터페이스를 구현한 클래스의 인스턴스만 복제할 수 있다.
- Object클래스에 정의된 clone()은 인스턴스변수의 값만을 복제한다.
- 인스턴스변수가 참조형일 때, 참조하는 객체도 복제되게 오버라이딩해야함.

1.6 getClass()
- 자신이 속한 클래스의 Class객체를 반환하는 메서드
- Class객체는 클래스의 모든 정보를 담고 있으며, 클래스당 단 1개만 존재
(클래스파일(*.class)이 메모리에 로드될때 생성된다.

'기초튼튼 > JAVA' 카테고리의 다른 글

java.lang 패키지(StringBuffer클래스)  (0) 2019.07.05
java.lang 패키지(String클래스)  (0) 2019.07.05
예외처리  (0) 2019.07.04
인터페이스  (0) 2019.07.04
추상클래스  (0) 2019.07.03