반응형
정적 클래스나 정적메소드만 사용하는 클래스는 public 생성자를 두어 외부접근을 허용할 위험을 가질 필요가 없다.
생성자를 정의하지 않으면 컴파일러가 자동으로 기본생성자를 public으로 만들어준다. 그렇다고 추상클래스를 만들면 안된다. 추상클래스를 상속하는 하위 객체가 생성될 때 추상클래스의 인스턴스도 생성되기 때문이다. 그러므로 클래스의 인스턴스화를 막으려면
private으로 선언된 생성자를 두면 된다.
private으로 선언하면 외부에서 접근이 불가능하고 상속도 되지 않는다. 하위 객체가 부모객체를 생성하지 못하기 때문이다.
반응형
'Dev > JAVA' 카테고리의 다른 글
[Effective JAVA] 불필요한 객체 생성을 피하라 ( 아이템6 ) (0) | 2024.03.20 |
---|---|
[Effective JAVA] 자원을 직접 명시하지 말고 의존객체 주입을 사용하라. ( 아이템5 ) (0) | 2024.03.20 |
[Effective JAVA] private 생성자나 열거타입으로 싱글턴임을 보증하라. ( 아이템 3 ) (0) | 2024.03.20 |
[Effective JAVA] 생성자 대신 정적 팩터리 메서드를 고려하라. ( 아이템 1 ) (0) | 2024.03.20 |
[ModernJAVA] Stream이 필요한 이유 (0) | 2024.03.05 |