16 . Object 클래스
Object 클래스
Object 클래스의 메소드
•
public boolean equals(Object obj) → 객체 자신과 객체 obj가 같은 객체인지 검사한다. (같으면 true 리턴)
•
public String toString() → 객체의 정보를 문자열로 표현하여 반환한다.
•
protected Object clone() → 객체 자신의 복사본을 생성하여 반환한다.
•
public int hashCode() → 객체에 대한 해쉬 코드를 반환한다.
•
protected void finalize() → 가비지 콜렉터에 의해 호출된다.
•
public final Class getClass() → 객체의 클래스 정보를 반환한다.
기본적으로 11개가 포함되어 있고, 오버라이딩해서 활용할 수 있다.
위의 리스트는 자주 사용되는 메소드들이다.
equals() 메소드
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개의 원은 같지 않습니다.");
}
}
}
Java
복사
출력 :
2개의 원은 같지 않습니다.
Java
복사
⇒ 위의 코드에서 비교하는 obj1 == obj2는 객체의 주소값을 비교하는 것이기 때문에 반지름이
같은 원인지 비교하는 취지에는 맞지 않다.
class Circle {
private int radius;
public Circle(int radius) {
this.radius = radius;
}
public int getRadius() {
return radius;
}
@Override
public boolean equals(Object obj) {
if (obj instanceof Circle2) {
Circle2 c1 = (Circle2) obj;
if (getRadius() == c1.getRadius()) {
return true;
} else {
return false;
}
}
return false;
}
}
public class CircleTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Circle2 circle1 = new Circle2(10);
Circle2 circle2 = new Circle2(10);
if (circle1.equals(circle2)) {
System.out.println("2개의 원은 같습니다.");
} else {
System.out.println("2개의 원은 같지 않습니다.");
}
}
}
Java
복사
출력 :
2개의 원은 같습니다.
Java
복사
toString() 메소드
class Student {
private String name, sex;
Student(String name, String sex) {
this.name = name;
this.sex = sex;
}
@Override
public String toString() {
return "이름은 " + name + "이고 성별은 " + sex + "입니다.";
}
}
public class StudentToStringTest {
public static void main(String[] args) {
Student s = new Student("홍길동", "남자");
System.out.println(s);
}
}
Java
복사
출력 :
이름은 홍길동이고 성별은 남자입니다.
Java
복사
String 클래스
(Java 외의 언어에서는 문자열을 char형의 배열로 다룬다.)