X Tutup
Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

README.md

멤버 클래스는 되도록 static으로 만들라

  • 중첩 클래스 nested class는 자신을 감싼 바깥 클래스에서만 쓰여아한다.
  • 중첩 클래스 종류
    1. 정적 멤버 클래스
    2. 비정적 멤버 클래스
    3. 익명 클래스
    4. 지역 클래스

어느 경우에 정적, 비정적 멤버 클래스를 사용할까

  • 바깥 인스턴스를 참조하냐 안하냐의 차이
  • Iterator, Adaptor는 바깥 인스턴스를 참조해야지만 쓸모가 있는 클래스
    • 그러므로 비정적 클래스로!
  • EntryMap 내부에 있지만, Map 정보에 대해 알 필요 없음 --> 그래서 Enty는 정적 멤버 클래스로 가능
  • 반면 Iterator들은 바깥 인스턴스 정보를 알아야 하니까.. --> 비정적 클래스
  • 다시 말해, 정적 클래스의 경우 새로운 탑클래스로 분리 가능하다 (바깥 클래스를 참조하고 있지 않기 때문에)
    • 반면 비정적 클래스의 경우, 바깥 클래스를 참조하고 있는 경우, 새로운 탑 클래스로 분리하는 게 어렵거나 불가능하다. -> 그러므로 해당 클래스 내부에 존재하도록 만들어야 한다.

QnA

  • 예제코드 --> https://javabom.tistory.com/46
  • 좀 더 알아보면 좋을 내용들
    1. Map.Entry Interface의 목적과 사용에 대해
    2. 위 예제 코드를 통해 각각 클래스가 어떤 것인지 알면 좋을듯.
    3. 비정적 멤버 클래스의 경우 접근제한자가 public, protected로 설정하는 경우도 있을까?
X Tutup