본문 바로가기
자바프로그래밍

자바프로그래밍 다형성 toString 인터페이스 내부클래스 자바 ObjectClass equalsMethod

by aiyoon 2025. 5. 25.
반응형

✅ 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 주소 비교
인터페이스 다형성 활용의 핵심 구조
내부 클래스 외부 클래스와 밀접하게 연관된 구조 표현

반응형