Skip to content

Latest commit

Β 

History

History
38 lines (28 loc) Β· 2.9 KB

Item22.md

File metadata and controls

38 lines (28 loc) Β· 2.9 KB

[Item 22] μΈν„°νŽ˜μ΄μŠ€λŠ” νƒ€μž…μ„ μ •μ˜ν•˜λŠ” μš©λ„λ‘œλ§Œ μ‚¬μš©ν•˜λΌ.

μΈν„°νŽ˜μ΄μŠ€λŠ” μžμ‹ μ„ κ΅¬ν˜„ν•œ 클래슀의 μΈμŠ€ν„΄μŠ€λ₯Ό μ°Έμ‘°ν•  수 μžˆλŠ” νƒ€μž… 역할을 ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ―€λ‘œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•œ ν΄λž˜μŠ€λŠ” ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ μžμ‹ μ˜ μΈμŠ€ν„΄μŠ€λ‘œ 무엇을 ν•  수 μžˆλŠ”μ§€ λ§ν•΄μ£ΌλŠ” κ²ƒμž…λ‹ˆλ‹€. μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ‹€λ₯Έ μš©λ„λ‘œ μ‚¬μš©ν•˜λŠ” 것은 λΆ€μ μ ˆν•©λ‹ˆλ‹€.
이 지침에 λ§žμ§€ μ•ŠλŠ” 예둜 μ†Œμœ„ μƒμˆ˜ μΈν„°νŽ˜μ΄μŠ€λΌλŠ” 것이 μžˆμŠ΅λ‹ˆλ‹€. μƒμˆ˜ μΈν„°νŽ˜μ΄μŠ€λŠ” λ©”μ„œλ“œκ°€ 없이, μƒμˆ˜λ₯Ό λœ»ν•˜λŠ” static final ν•„λ“œλ‘œλ§Œ 가득 μ°¬ μΈν„°νŽ˜μ΄μŠ€λ₯Ό λœ»ν•©λ‹ˆλ‹€.

public interface PhysicalConstants {
    static final double AVOGADROS_NUMBER =  6.022_140_857e34;

    static final double BOLTZMANN_CONSTANT = 1.380_648_52e-23;

    static final double ELECTRON_MASS = 9.109_383_56e-31;
}

μƒμˆ˜ μΈν„°νŽ˜μ΄μŠ€ μ•ˆν‹°νŒ¨ν„΄μ€ μΈν„°νŽ˜μ΄μŠ€λ₯Ό 잘λͺ» μ‚¬μš©ν•œ μ˜ˆμž…λ‹ˆλ‹€. 클래슀 λ‚΄λΆ€μ—μ„œ μ‚¬μš©ν•˜λŠ” μƒμˆ˜λŠ” μ™ΈλΆ€ μΈν„°νŽ˜μ΄μŠ€κ°€ μ•„λ‹ˆλΌ λ‚΄λΆ€ κ΅¬ν˜„μ— ν•΄λ‹Ήν•©λ‹ˆλ‹€. λ”°λΌμ„œ μƒμˆ˜ μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•˜λŠ” 것은 이 λ‚΄λΆ€ κ΅¬ν˜„μ„ 클래슀의 API둜 λ…ΈμΆœν•˜λŠ” ν–‰μœ„μž…λ‹ˆλ‹€. ν΄λž˜μŠ€κ°€ μ–΄λ–€ μƒμˆ˜ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ‚¬μš©ν•˜λ“  μ‚¬μš©μžμ—κ²ŒλŠ” μ•„λ¬΄λŸ° μ˜λ―Έκ°€ μ—†μŠ΅λ‹ˆλ‹€. 였히렀 ν˜Όλž€μ„ 쀄 μˆ˜κ°€ 있으며, 더 μ‹¬κ°ν•˜κ²ŒλŠ” ν΄λΌμ΄μ–ΈνŠΈ μ½”λ“œκ°€ λ‚΄λΆ€ κ΅¬ν˜„μ— ν•΄λ‹Ήν•˜λŠ” 이 μƒμˆ˜λ“€μ—κ²Œ μ’…μ†λ˜κ²Œ ν•©λ‹ˆλ‹€.
κ·Έλž˜μ„œ λ‹€μŒ λ¦΄λ¦¬μ¦ˆμ—μ„œ 이 μƒμˆ˜λ“€μ„ λ”λŠ” 쓰지 μ•Šκ²Œ λ˜λ”λΌλ„ λ°”μ΄λ„ˆλ¦¬ ν˜Έν™˜μ„±μ„ μœ„ν•΄ μ—¬μ „νžˆ μƒμˆ˜ μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•˜κ³  μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€. final이 μ•„λ‹ŒοΏ½ν΄λž˜μŠ€κ°€ μƒμˆ˜ μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•œλ‹€λ©΄ λͺ¨λ“  ν•˜μœ„ 클래슀의 λ„€μž„μŠ€νŽ˜μ΄μŠ€κ°€ κ·Έ μΈν„°νŽ˜μ΄μŠ€κ°€ μ •μ˜ν•œ μƒμˆ˜λ“€λ‘œ μ˜€μ—Όλ˜μ–΄ λ²„λ¦½λ‹ˆλ‹€.
java.io.ObjectStreamConstants λ“±, μžλ°” ν”Œλž«νΌ λΌμ΄λΈŒλŸ¬λ¦¬μ—λ„ μƒμˆ˜ μΈν„°νŽ˜μ΄μŠ€κ°€ λͺ‡ 개 μžˆμœΌλ‚˜, μΈν„°νŽ˜μ΄μŠ€λ₯Ό 잘λͺ» ν™œμš©ν•œ μ˜ˆμ΄λ‹ˆ 따라 ν•΄μ„œλŠ” μ•ˆ λ©λ‹ˆλ‹€. μƒμˆ˜λ₯Ό κ³΅κ°œν•  λͺ©μ μ΄λΌλ©΄ 더 ν•©λ‹Ήν•œ 방법듀이 μžˆμŠ΅λ‹ˆλ‹€.
νŠΉμ • ν΄λž˜μŠ€λ‚˜ μΈν„°νŽ˜μ΄μŠ€μ™€ κ°•ν•˜κ²Œ μ—°κ΄€λœ μƒμˆ˜λΌλ©΄ κ·Έ ν΄λž˜μŠ€λ‚˜ μΈν„°νŽ˜μ΄μŠ€ μžμ²΄μ— μΆ”κ°€ν•΄μ•Όν•©λ‹ˆλ‹€. λŒ€ν‘œμ μœΌλ‘œ Integer와 Double에 μ„ μ–Έλœ MIN_VALUE와 MAX_VALUE μƒμˆ˜κ°€ 이런 μ˜ˆμž…λ‹ˆλ‹€. μ—΄κ±° νƒ€μž…μœΌλ‘œ λ‚˜νƒ€λ‚΄κΈ° μ ν•©ν•œ μƒμˆ˜λΌλ©΄ μ—΄κ±° νƒ€μž…μœΌλ‘œ λ§Œλ“€λ©΄ 되고 그것도 μ•„λ‹ˆλΌλ©΄ μΈμŠ€ν„΄μŠ€ν™” ν•  수 μ—†λŠ” μœ ν‹Έν΄λž˜μŠ€μ— λ‹΄μ•„ κ³΅κ°œν•˜λ©΄ λ©λ‹ˆλ‹€.

// μœ ν‹Έλ¦¬ν‹° 클래슀

public class PhysicalConstants {
    private PhysicalConstants()

    static final double AVOGADROS_NUMBER =  6.022_140_857e34;

    ... μƒλž΅
}

정리

  • μΈν„°νŽ˜μ΄μŠ€λŠ” νƒ€μž…μ„ μ •μ˜ν•˜λŠ” μš©λ„λ‘œλ§Œ μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€, μ‹€μˆ˜ 곡개용 μˆ˜λ‹¨μœΌλ‘œ μ‚¬μš©ν•˜μ§€ λ§™μ‹œλ‹€.