IT 개발노트
java.lang 패키지(Object클래스) 본문
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 |