16.Object 클래스(1)
1. Object 클래스
•
Object 클래스는 java.lang 패키지에 들어있는 클래스로 모든 클래스의 조상이다.
2. Object 메소드의 종류
•
public boolean equals(Object obj): obj가 이 객체와 같은지를 검사한다.
•
public String toString(): 객체의 문자열 표현을 반환한다.
•
protected Object clone(): 객체 자신의 복사본을 생성하여 반환한다.
•
public int hashCode(): 객체에 대한 해쉬 코드를 반환한다.
•
protected void finalize(): 가비지 콜렉터에 의하여 호출된다.(잘 사용하지 않음)
•
public final Class getClass(): 객체의 클래스 정보를 반환한다.
3. Equals() 메소드
•
예제1) ==
class Circle{
int radius;
public Circle(int radius){ this.radius = radius;}
}
public class CircleTest{
public static void main(String[] args){
Circle obj1 = new Circle(10);
Circle obj2 = new Circle(10);
if(obj1 == obj2) System.out.println("2개의 원은 같습니다.");
else System.out.println("2개의 원은 같지 않습니다.");
}
}
Plain Text
복사
//실행결과
2개의 원은 같지 않습니다.
Plain Text
복사
•
예제1에서 obj1과 obj2가 같지 않은 이유는 위 그림에서 처럼 서로 가르키고 있는 메모리주소가 같지 않기 때문이다.
•
예제1처럼 되지 않으려면 Equals()메소드를 사용해야 한다.
•
예제2) Equals() 메소드
class Circle{
int radius;
public Circle(int radius){ this.radius = radius;}
public boolean equals(Circle c1){
if(radius == c1.radius) return true;
else return false;
}
}
public class CircleTest{
public static void main(String[] args){
Circle obj1 = new Circle(10);
Circle obj2 = new Circle(10);
if(obj1.equals(obj2)) System.out.println("2개의 원은 같습니다.");
else System.out.println("2개의 원은 같지 않습니다.");
}
Plain Text
복사
//실행결과
2개의 원은 같습니다.
Plain Text
복사
•
예제2에서 처럼 Equals()메소드를 사용하면 객체의 내용을 비교하여 같은 값이 나오게 된다.
4. toString() 메소드
•
toString(): 객체가 가지고 있는 정보나 값들을 문자열로 만들어 리턴하는 메소드이다.
•
예제) toString() 메소드
Object obj = new Object();
System.out.println(obj.toSting());
Plain Text
복사
//실행결과
java.lang.Object@de6ced
Plain Text
복사
•
toString() 메소드는 일반적으로 의미 있는 문자정보가 나오도록 재정의 한다.
•
Date 클래스: 현재 시스템의 날짜와 시간 정보 리턴
•
String 클래스: 저장하고 있는 문자열 리턴