잘 정리한 글을 참고해 작성했습니다 🙂

다양한 이름을 갖는 클래스들의 특징을 잘 모르면 이해하기 다소 어려울 수 있었던 아이템인 것 같다.

결국 멤버 클래스를 static으로 왜 만들어야 하는가를 알면 되는데,

아이템 소개 시작은 ‘중첩 클래스’에 대한 설명으로 시작한다.

중첩 클래스


다른 클래스 안에 정의된 클래스를 말한며 4가지로 나뉜다.

  1. 정적 멤버 클래스(static member class)
  2. 비정적 멤버 클래스(non static member class)
  3. 익명 클래스
  4. 지역 클래스

Untitled

정적 멤버 클래스 vs 비정적 멤버 클래스


정적 멤버 클래스는 바깥 클래스의 private 멤버에 접근 가능하다. 비정적 멤버 클래스와 코드 상에서 static의 유무만 보일 수 있으나 의미상 차이는 더 크다.

비정적 멤버 클래스는 바깥 클래스와 암묵적으로 연결된다. 비정적 멤버 클래스의 인스턴스 메서드에서 정규화된 this를 통해 바깥 인스턴스를 참조할 수 있다.