← 질문 목록
#171깊이 0
정적 클래스 내부에 정적 메서드를 정의하는 이유는 무엇인가?
객체 생성 없이 기능을 제공하기 위해서다. 상태를 가지지 않는 유틸리티 성격의 기능을 묶어두는 용도로 사용한다.
| 대상 | 무엇인가 | 무엇을 얻는가 |
|---|---|---|
| 정적 클래스 | 유틸리티 클래스 | 인스턴스화 비용을 없앤다 |
| 정적 메서드 | 상태 없는 로직 | 같은 입력이면 같은 결과가 나온다 |
정적 클래스로 선언하면 외부에서 new 키워드로 인스턴스를 생성하는 것을 막을 수 있다. 이는 클래스가 단순한 도구 모음임을 명확히 알리는 설계적 의도이다.
정적 메서드는 인스턴스 변수(필드)에 접근할 수 없다. 자기를 부른 객체가 없으므로 this가 없다. 다만 참조를 받으면 그 객체의 필드도 보고 바깥 상태도 쓴다. 테스트 코드 작성 시 모킹(Mocking)가 어렵다는 단점이 있다.