1. μΈν°νμ΄μ€μ μν π£
μΈν°νμ΄μ€λ μμ μ ꡬνν ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μ°Έμ‘°ν μ μλ νμ μν μ νλ€. ν΄λμ€κ° μ΄λ€ μΈν°νμ΄μ€λ₯Ό ꡬννλ€λ κ²μ μμ μ μΈμ€ν΄μ€λ‘ 무μμ ν μ μλμ§λ₯Ό ν΄λΌμ΄μΈνΈμ μκΈ°ν΄ μ£Όλ κ²μ΄λ€.
μΈν°νμ΄μ€λ μ€μ§ μ΄ μ©λλ‘λ§ μ¬μ©ν΄μΌ νλ€. (λ°μμ μ΄ν΄λ³Ό κ²μ΄μ§λ§ μμ 곡κ°μ© μλ¨μΌλ‘ μ¬μ©νμ§ λ§μμΌ νλ€.)
2. μμ μΈν°νμ΄μ€ μν°ν¨ν΄ π₯
μμμ λ§ν μΈν°νμ΄μ€μ μν μ λ§μ§ μλ μλ‘ μμ μΈν°νμ΄μ€λΌλ κ²μ΄ μλ€. μμ μΈν°νμ΄μ€λ λ©μλ μμ΄, μμλ₯Ό λ»νλ static final νλλ‘λ§ κ°λ μ°¬ μΈν°νμ΄μ€λ₯Ό λ§νλ€.
public interface PhysicalConstants {
// μ보κ°λλ‘ μ (1/λͺ°)
static final double AVOGADROS_NUMBER = 6.022_140_857e23;
// λ³ΌμΈ λ§ μμ (J/K)
static final double BOLTZMANN_CONSTANT = 1.380_678_52e-23;
// μ μ μ§λ (kg)
static final double ELECTRON_MASS = 9.109_383_56e-31;
}
μμ μΈν°νμ΄μ€λ₯Ό ꡬνν μ΄μ λ μ΄ μμλ€μ μ¬μ©νλ €λ ν΄λμ€μμ μ κ·νλ μ΄λ¦(qualified name)μ μ°λ κ±Έ νΌνκΈ° μν΄μλ€. νμ§λ§ μ΄κ²μ μν°ν¨ν΄μ΄λ€. μΈν°νμ΄μ€λ₯Ό μλͺ» μ¬μ©ν μλ€.
ν΄λμ€ λ΄λΆμμ μ¬μ©νλ μμλ μΈλΆ μΈν°νμ΄μ€κ° μλλΌ λ΄λΆ ꡬνμ ν΄λΉνλ€. λ°λΌμ μμ μΈν°νμ΄μ€λ₯Ό ꡬννλ κ²μ μ΄ λ΄λΆ ꡬνμ ν΄λμ€μ APIλ‘ λ ΈμΆνλ νμλ€.
ν΄λμ€κ° μ΄λ€ μμ μΈν°νμ΄μ€λ₯Ό μ¬μ©νλ μ¬μ©μμκ²λ μλ¬΄λ° μλ―Έκ° μλ€. μ€νλ € μ¬μ©μμκ² νΌλμ μ£ΌκΈ°λ νλ©°, λ μ¬νκ²λ ν΄λΌμ΄μΈνΈ μ½λκ° λ΄λΆ ꡬνμ ν΄λΉνλ μ΄ μμλ€μ μ’ μλκ² λλ€. κ²λ€κ° finalμ΄ μλ ν΄λμ€κ° μμ μΈν°νμ΄μ€λ₯Ό ꡬννλ€λ©΄ λͺ¨λ νμ ν΄λμ€μ μ΄λ¦κ³΅κ°μ΄ κ·Έ μΈν°νμ΄μ€κ° μ μν μμλ€λ‘ μ€μΌλλ€.
3. μμλ₯Ό 곡κ°νλ λ°©λ² (μΈν°νμ΄μ€ X) π€
μμλ₯Ό 곡κ°ν λͺ©μ μ΄λΌλ©΄ μΈν°νμ΄μ€κ° μλ λ ν©λΉν 3κ°μ§ μ νμ§κ° μλ€.
π 1. νΉμ ν΄λμ€λ μΈν°νμ΄μ€μ κ°νκ² μ°κ΄λ μμλΌλ©΄ κ·Έ ν΄λμ€λ μΈν°νμ΄μ€ μ체μ μΆκ°ν΄μΌ νλ€.
// MIN_VALUEμ MAX_VALUEκ° μ μ ν μμμ΄λ€.
@jdk.internal.ValueBased
public final class Integer extends Number
implements Comparable<Integer>, Constable, ConstantDesc {
@Native public static final int MIN_VALUE = 0x80000000;
/**
* A constant holding the maximum value an {@code int} can
* have, 2<sup>31</sup>-1.
*/
@Native public static final int MAX_VALUE = 0x7fffffff;
...
}
π 2. μ΄κ±° νμ μΌλ‘ λνλ΄κΈ° μ ν©ν μμλΌλ©΄ μ΄κ±° νμ μΌλ‘ λ§λ€μ΄ 곡κ°νλ©΄ λλ€.
π 3. μΈμ€ν΄μ€νν μ μλ μ νΈλ¦¬ν° ν΄λμ€μ λ΄μ 곡κ°νμ.
public class PhysicalConstants {
private PhysicalConstants() { } // μΈμ€ν΄μ€ν λ°©μ§
// μ보κ°λλ‘ μ (1/λͺ°)
public static final double AVOGADROS_NUMBER = 6.022_140_857e23;
// λ³ΌμΈ λ§ μμ (J/K)
public static final double BOLTZMANN_CONSTANT = 1.380_678_52e-23;
// μ μ μ§λ (kg)
public static final double ELECTRON_MASS = 9.109_383_56e-31;
}