Effective Java 04 - item 24 -

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

중첩 클래스는 다른 클래스 안에 정의된 클래스를 의미한다.

정적 멤버 클래스와 비정적 멤버 클래스의 구문상 차이는 static 유무이지만 의미상 차이는 꽤 크다.

비정적 멤버 클래스의 인스턴스는 바깥 클래스의 인스턴스와 암묵적으로 연결된다.

멤버 클래스에서 바깥 인스턴스에 접근할 일이 없다면 무조건 static을 붙여 정적 멤버 클래스로 만들어주자.

중첩 클래스에는 총 네 가지가 존재한다.

메서드 밖에서도 사용해야하고 메서드 안에 정의하기에는 너무 길다면 멤버 클래스로 만든다.

멤버 클래스의 인스턴스 각각이 바깥 인스턴스를 참조한다면 비정적을,

참조할 필요가 없다면 정적으로 만들자.

중첩 클래스가 한 메서드 안에서만 쓰이면서 그 인스턴스를 생성하는 지점이 단 한곳이고 해당 타입으로 쓰기에 적합한 클래스나 인터페이스가 이미 있다면 익명 클래스로 만들고,

그렇지 않으면 지역 클래스로 만들자.

Reference

스크린샷 2021-04-16 오후 4 24 23

이펙티브 자바 Effective Java 3/E

조슈아 블로크



© 2022. by minkuk

Powered by minkuk