멤버 클래스는 되도록 static으로 만들라 중첩 클래스 nested class는 자신을 감싼 바깥 클래스에서만 쓰여아한다. 중첩 클래스 종류 정적 멤버 클래스 비정적 멤버 클래스 익명 클래스 지역 클래스 어느 경우에 정적, 비정적 멤버 클래스를 사용할까 바깥 인스턴스를 참조하냐 안하냐의 차이 Iterator, Adaptor는 바깥 인스턴스를 참조해야지만 쓸모가 있는 클래스 그러므로 비정적 클래스로! Entry 는 Map 내부에 있지만, Map 정보에 대해 알 필요 없음 --> 그래서 Enty는 정적 멤버 클래스로 가능 반면 Iterator들은 바깥 인스턴스 정보를 알아야 하니까.. --> 비정적 클래스 다시 말해, 정적 클래스의 경우 새로운 탑클래스로 분리 가능하다 (바깥 클래스를 참조하고 있지 않기 때문에) 반면 비정적 클래스의 경우, 바깥 클래스를 참조하고 있는 경우, 새로운 탑 클래스로 분리하는 게 어렵거나 불가능하다. -> 그러므로 해당 클래스 내부에 존재하도록 만들어야 한다. QnA 예제코드 --> https://javabom.tistory.com/46 좀 더 알아보면 좋을 내용들 Map.Entry Interface의 목적과 사용에 대해 위 예제 코드를 통해 각각 클래스가 어떤 것인지 알면 좋을듯. 비정적 멤버 클래스의 경우 접근제한자가 public, protected로 설정하는 경우도 있을까?