티스토리 뷰

상수를 정의하는 용도로 인터페이스를 사용하지 말 것

- 클래스 내부에서 사용할 상수는 내부 구현에 해당

- 내부 구현을 클래스의 API로 노출하는 행위가 된다

- 클라이언트에 혼란을 준다

  - 다음 릴리스에서 이 상수들을 더는 쓰지 않게 되더라도 바이너리 호환성을 위해 여전히 상수 인터페이스를 구현해야한다

- ex) java.io.ObjectStreamConstants 등, 자바 플랫폼 라이브러리에도 상수 인터페이스가 몇 개 있으나, 따라해서는 안된다

public interface PhysicalConstants {
	
	// 아보가드로 수 (1/몰)
	static final double AVOGADROS_NUMBER = 6.02214076e23;

	// 볼츠만 상수 (J/K)
	static final double BOLTZMANN_CONSTANT = 1.38064852e-23;

	// 전자 질량 (kg)
	static final double ELECTRON_MASS = 9.10938356e-31;
}

 

상수를 정의하는 방법

- 특정 클래스나 인터페이스

- 열거형

- 인스턴스화 할 수 없는 유틸리티 클래스

public class PhysicalConstants {
	
	private PhysicalConstants() { } // 인스턴스화 방지

	// 아보가드로 수 (1/몰)
	public static final double AVOGADROS_NUMBER = 6.02214076e23;

	// 볼츠만 상수 (J/K)
	public static final double BOLTZMANN_CONSTANT = 1.38064852e-23;

	// 전자 질량 (kg)
	public static final double ELECTRON_MASS = 9.10938356e-31;
}

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/07   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함