인스턴스화를 막는 이유 java.lang.Math, java.util.Arrays처럼 기본 타입 값이나 관련된 메서드를 모아 놓을 때 java.util.Collections처럼 특정 인터페이스를 구현하는 객체를 생성해주는 정적 메서드를 모아 놓을 때 final 클래스와 관련된 메서드를 모아 놓을 때 인스턴스화를 막는 방법 public class UtilClass { //인스턴스화 방지용 private UtilClass() { throw new AssertionError(); } } 추상클래스는 하위 클래스를 만들어 인스턴스화 한다는 방법이 있으므로 private 생성자를 추가합니다. 이때 혹시라도 클래스 안에서 생성자를 호출하지 않도록 처리를 해줍니다. 이 방법은 상속을 불가능하게 하는 효과도 있습니다.