이펙티브 자바 아이템4 용어 정리

이창호·2022년 4월 9일
0

이펙티브자바

목록 보기
6/12

추상 클래스로 만드는 것으로는 인스턴스화를 막을 수 없다

아래와 같이 Math class는 final이라서 다른 class들이 subclassed 할 수 없다.

public final class Math {

    /**
     * Don't let anyone instantiate this class.
     */
    private Math() {}
    ...
}

인스턴스화를 막으려거든 private 생성자를 사용하라

Arrays란 class는 static method들만 존재한다.
이는 array와 관련된 method들만 모아두려고 만든 class라 그렇다.
굳이 instnace를 생성하지 않아도 되는 경우면 기본 생성자를 private로 만들면 된다.

public class Arrays {

    // Suppresses default constructor, ensuring non-instantiability.
    private Arrays() {}
    
        public static void sort(int[] a) {
        DualPivotQuicksort.sort(a, 0, 0, a.length);
    }
    
	...
}

생성자 체이닝 (Constructor Chaining)

profile
이타적인 기회주의자

0개의 댓글