[Item17] - 변경 가능성을 최소화하라.
Effective Java 3/E를 공부하며 작성한 글입니다. 혼자 공부하고 정리한 내용이며, 틀린 부분은 지적해주시면 감사드리겠습니다 😀 불변 클래스 인스턴스 내부 값을 수정할 수 없는 클래스 불변 인스턴스에 간직된 정보는 고정되어 객체가 파괴되는 순간까지 절대 달라지지 않는다. 자바 플랫폼 라이브러리에도 String, 기본 타입의 박싱된 클래스들, BigInteger, BigDecimal이 여기에 속한다. 불변 클래스는 가변 클래스보다 설계 및 구현, 사용이 쉬우며, 오류가 생길 여지도 적고 훨씬 안전하다. 불변 클래스 생성 규칙 객체의 상태를 변경하는 메소드(변경자)를 제공하지 않는다. 불변이라는 단어와 같이 변하지 않아야하기 때문에 객체 상태를 변경할 수 없도록 변경자를 제공하지 않아야 한다. 클..