아이템 23

    [Effective Java] item 24. 멤버 클래스는 되도록 static으로 만들어라 **

    본문은 Effective Java를 읽고 정리한 내용을 기반으로 작성된 글입니다. ☑️ 중첩 클래스(nested class) : 다른 클래스 안에 정의된 클래스 ↔ 자신을 감싼 바깥 클래스에서만 쓰여야함 정적 멤버 클래스 비정적 멤버 클래스 익명 클래스 지역 클래스 정적 멤버 클래스를 제외한 나머지는 내부 클래스(inner class)에 해당된다. [정적 멤버 클래스 & 비정적 멤버 클래스] ☑️ 정적 멤버 클래스 : 다른 클래스 안에 선언되고, 바깥 클래스의 private 멤버에도 접근할 수 있다 외부 클래스와 독립적으로 존재할 수 있음 → 외부 클래스의 인스턴스에 종속되지 않음 (inner class로 간주되지 않는 이유) ☑️ 비정적 멤버 클래스 구문상으로는 static 있고 없고 차이지만, 비정적..

    [Effective Java] item 23. 태그 달린 클래스보다는 클래스 계층구조를 활용하라

    본문은 Effective Java를 읽고 정리한 내용을 기반으로 작성된 글입니다. 태그 달린 클래스는 클래스 계층구조보다 훨씬 나쁘다! [태그 달린 클래스] : 두가지 이상의 의미를 표현할 수 있고, 그 중 현재 표현하는 의미를 태그 값으로 알려주는 클래스 public class Figure { enum Shape {RECTANGLE, CIRCLE}; // 태그 필드 - 현재 모양을 나타낸다. final Shape shape; // 다음 필드들은 모양이 사각형(RECTANGLE)일 때만 쓰인다. double length; double width; // 다음 필드는 모양이 원(CIRCLE)일 때만 쓰인다. double radius; // 원용 생성자 public FigureWithTag(double rad..