이너클래스

    [Effective Java] 멤버 클래스는 되도록 static으로 만들라

    중첩 클래스 중첩 클래스란 다른 클래스 안에 정의된 클래스를 의미한다. 중첩 클래스는 자신을 감싼 바깥 클래스에서만 쓰여야 한다. 중첩 클래스의 종류 정적 멤버 클래스, 멤버 클래스, 익명 클래스, 지역 클래스가 있으며 이 중 첫 번째를 제외한 나머지는 내부 클래스에 해당한다. 1. 정적 멤버 클래스 주로 바깥 클래스와 함께 쓰일 때만 유용한 public 도우미 클래스로 쓰인다. Calculator.Operation.PLUS Calculator.Operation.MINUS 2. 비정적 멤버 클래스 비정적 멤버 클래스의 인스턴스는 바깥 클래스의 인스턴스와 암묵적으로 연결된다. 그래서 비정적 멤버 클래스의 인스턴스 메서드에서 정규화된 this를 사용해 바깥 인스턴스의 메서드를 호출하거나 바깥 인스턴스의 참조..