1. Object 클래스란?
Object 클래스는 자바에서 모든 클래스의 최상위 클래스이다.
- 자바에서 생성되는 모든 객체는 Object를 상속받는다.
- 어떤 클래스든 Object 타입으로 참조할 수 있다.
- 명시적으로 상속하지 않아도 자동으로 상속된다.
- 자식 클래스의 경우 Object는 부모 클래스가 상속한다
class Person {
}
public class Main {
public static void main(String[] args) {
Person p = new Person();
Object obj = p; // 업캐스팅 가능
}
}
2. Object 클래스의 주요 메서드
- toString() : 객체를 문자열로 표현하는 메서드
- equals() : 두 객체가 논리적으로 같은지 비교하는 메서드 (참조 주소 비교)
- hashCode() : 객체를 식별하기 위한 정수형 해시 값을 반환함
3. 예시
class Person {
String name;
Person(String name) {
this.name = name;
}
}
public class Main {
public static void main(String[] args) {
Person p1 = new Person("홍길동");
Person p2 = new Person("홍길동");
System.out.println(p1.equals(p2));
}
}
출력
false
import java.util.HashSet;
import java.util.Set;
class Person {
String name;
Person(String name) {
this.name = name;
}
@Override
public boolean equals(Object obj) {
if (!(obj instanceof Person)) return false;
Person other = (Person) obj;
return name.equals(other.name);
}
@Override
public int hashCode() {
return name.hashCode();
}
}
public class Main {
public static void main(String[] args) {
Set<Person> set = new HashSet<>();
set.add(new Person("홍길동"));
set.add(new Person("홍길동"));
System.out.println(set.size());
}
}
3. 정리
- 모든 클래스는 Object 클래스를 상속받는다
- toString은 객체 정보를 문자열로 표현함
- equals()는 객체 논리 동등 비교
- equals()를 오버라이딩하면 hashCode()도 함께 오버라이딩하는게 원칙
'Java & Spring > Java' 카테고리의 다른 글
| 다형성 (Polymorphism) (0) | 2026.01.06 |
|---|---|
| 캡슐화와 접근 제어자 (0) | 2026.01.06 |
| 상속(Inheritance)이란 (0) | 2026.01.06 |
| 생성자&this,this() (0) | 2026.01.06 |
| 메서드 (0) | 2026.01.06 |