728x90
중첩 클래스에는 4가지가 있다. 정적 멤버 클래스, (비정적)멤버 클래스, 익명 클래스, 지역 클래스 이중 첫번째를 제외한 나머지는 inner 클래스 이다. 메서드 밖에서도 사용해야 하거나 메서드 안에 정의하기엔 너무 길다면 멤버 클래스로 만든다. 멤버 클래스의 인스턴스 각각이 바깥 인스턴스를 참조한다면 비정적으로, 그렇지 않으면 정적으로 만들자. 중첩 클래스가 한 메서드 안에서만 쓰이면서 그 인스턴스를 생성하는 지점이 단 한 곳이고 해당 타입으로 쓰기에 적합한 클래스나 인터페이스가 이미 있다면 익명 클래스로 만들고, 그렇지 않으면 지역 클래스로 만들자.
728x90
'책 > EFFECTIVE JAVA' 카테고리의 다른 글
[제네릭]아이템26. 로 타입은 사용하지 말라 (0) | 2024.10.28 |
---|---|
[클래스와 인터페이스]아이템25. 톱레벨 클래스는 한 파일에 하나만 담으라 (0) | 2024.10.21 |
[클래스와 인터페이스]아이템23. 태그 달린 클래스보다는 클래스 계층구조를 활용하라 (6) | 2024.10.14 |
[클래스와 인터페이스]아이템22. 인터페이스는 타입을 정의하는 용도로만 사용하라 (0) | 2024.10.11 |
[클래스와 인터페이스]아이템21. 인터페이스는 구현하는 쪽을 생각해 설계하라 (0) | 2024.10.11 |