자바프로그래밍
자바프로그래밍 다형성 toString 인터페이스 내부클래스 자바 ObjectClass equalsMethod
aiyoon
2025. 5. 25. 19:05
반응형
✅ 08장 다형성과 내부 클래스
📌 1. 클래스의 다형성 – 가장 중요한 개념
“부모 타입의 변수로 자식 객체를 담아 사용할 수 있다”
Employee emp = new Salesman(); // OK
Employee emp = new Director(); // OK
✔️ 핵심 포인트:
- 다형성은 **"한 가지 타입으로 여러 객체를 표현"**할 수 있는 것
- **공통된 부모 클래스(또는 인터페이스)**를 이용해 다양한 자식 객체를 하나의 변수로 제어
✔️ 결과:
- 유지보수 용이, 확장성 ↑
- 메서드 재정의(오버라이딩)를 통해 각각의 객체가 자신의 방식대로 동작
📌 2. Object 클래스와 toString() / equals()
toString()
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
- 객체를 문자열로 표현할 때 자동으로 호출
- 출력값 예:
com.ruby.java.ch08.polymorphism.Salesman@279f2327
해시코드는 메모리 주소와 유사하지만 직접적인 주소값은 아님
equals()
public boolean equals(Object obj) {
return (this == obj); // 주소값(동일한 객체인지) 비교
}
비교 방식 | 의미 |
== | 같은 객체(참조값 비교) |
equals() | 기본은 ==와 동일하나, 필요 시 오버라이딩으로 값 비교 가능 |
📌 3. 인터페이스의 다형성
클래스뿐 아니라 인터페이스도 다형성 적용 가능
Messenger m = new IPhoneMessenger();
- 인터페이스 변수로 여러 구현 객체를 제어 가능
- 유연한 코드 구성과 호환성 확보
📌 4. 내부 클래스
- 클래스 안에 정의된 클래스
- UI, 이벤트 처리, 콜백 구조에 자주 사용됨
class Outer {
class Inner {
void display() { ... }
}
}
🔍 초보자가 꼭 기억해야 할 요약
주제 | 핵심 정리 |
다형성 | 부모 타입 참조 변수에 자식 객체 저장 가능 |
Object | 자바 모든 클래스의 조상 |
toString() | 객체 → 문자열 변환 |
equals() vs == | 값 비교 vs 주소 비교 |
인터페이스 | 다형성 활용의 핵심 구조 |
내부 클래스 | 외부 클래스와 밀접하게 연관된 구조 표현 |
반응형