[JAVA] staticμ μλ―Έμ μ¬μ©λ²
π static : 'μ μ μΈ' μ΄λΌλ λ»μΌλ‘, JAVAμμ νλ‘κ·Έλ¨ μ€ν μμ μ λ§λ€μ΄μ§κ³ νλ‘κ·Έλ¨ μ’ λ£ μμ μ μ κ±°λλ€λ νΉμ§μ λΆμ¬μ§ μ΄λ¦.
μ μ λ©€λ² : μ μ λ³μ(νμ) + μ μ λ©μλ
μ μ λ³μ (= ν΄λμ€ λ³μ, Static λ³μ) : Staticμ΄ λΆμ λ©€λ² λ³μ
- μ μ λ³μλ μλ° νλ‘κ·Έλ¨μ μμν λ λ± 1κ° λ§λ€μ΄μ§λ€. μΈμ€ν΄μ€ λ³μμ λ€λ₯΄κ² λ³΄ν΅ μ¬λ¬κ³³μμ 곡μ νλ λͺ©μ μΌλ‘ μ¬μ©λλ€.
- ν΄λμ€μμ 곡μ©μΌλ‘ κ΄λ¦¬νλ€.
- μΈμ€ν΄μ€κ° μλ ν΄λμ€λ₯Ό ν΅ν΄μ μ κ·Όνλ κ²μ΄ λ λͺ ννλ€.
μ μ λ©μλ (=ν΄λμ€ λ©μλ) : Staticμ΄ λΆμ λ©μλ
- μΈμ€ν΄μ€(κ°μ²΄) μμ± μμ΄ ν΄λμ€μ μλ λ©μλλ₯Ό 'ν΄λμ€μ΄λ¦.λ³μλͺ
'μΌλ‘ λ°λ‘ νΈμΆν μ μλ€.
- μ°Έμ‘°κ°μ κ°λ μ΄ μμ
- ν΄λμ€ λ΄λΆμ κΈ°λ₯μ μ¬μ©ν λ, μ μ λ©μλλ μΈμ€ν΄μ€ λ³μλ, μΈμ€ν΄μ€ λ©μλλ₯Ό μ¬μ©ν μ μλ€.
- κ°λ¨ν λ©μλ νμ©μΌλ‘ λλλ μ νΈλ¦¬ν°μ± λ©μλμ μμ£Ό μ¬μ©νλ€. (μ νΈλ¦¬ν°μ± λ©μλ)
π μ μ λ©μλλ₯Ό μ¬μ©ν λ νΉμ λ©μλλ₯Ό μμ£Ό νΈμΆν΄μΌνλ€λ©΄,
Static import κΈ°λ₯μ μ¬μ©νμ¬ ν΄λμ€ λͺ μ μλ΅νκ³ λ©μλλ₯Ό νΈμΆν μ μλ€.
βοΈ μλ°μ λ©λͺ¨λ¦¬ ꡬ쑰 βοΈ
μλ°μ λ©λͺ¨λ¦¬ ꡬ쑰λ ν¬κ² λ§€μλ μμ, μ€ν μμ, ν μμ 3κ°λ‘ λλ μ μλ€.
- λ©μλ μμ : νλ‘κ·Έλ¨μ μ€ννλλ° νμν κ³΅ν΅ λ°μ΄ν°λ₯Ό 보κ΄νλ€.
- ν΄λμ€ μ 보
- Static μμ
- κ³΅ν΅ λ¦¬ν°λ΄ μμ
- μ€ν μμ : μ€μ νλ‘κ·Έλ¨μ΄ μ€νλλ μμμΌλ‘, λ©μλλ₯Ό μ€νν λ λ§λ€ νλμ© μμΈλ€.
- λ©μλλ₯Ό νΈμΆν λλ§λ€ νλμ μ€ν νλ μμ΄ μμ΄κ³ λ©μλκ° μ’
λ£λλ©΄ ν΄λΉ μ€ν
νλ μμ΄ μ κ±°λλ€.
(μ ννλ, κ° μ°λ λλ³λ‘ νλμ μ€ν μ€ν μ΄ μμ±λλ€.)
- λ©μλλ₯Ό νΈμΆν λλ§λ€ νλμ μ€ν νλ μμ΄ μμ΄κ³ λ©μλκ° μ’
λ£λλ©΄ ν΄λΉ μ€ν
νλ μμ΄ μ κ±°λλ€.
- ν μμ : κ°μ²΄(μΈμ€ν΄μ€)κ° μμ±λλ μμ. new λͺ
λ Ήμ΄λ₯Ό μ¬μ©νλ©΄ μ΄ μμμ μ¬μ©νλ€.
- λ μ΄μ μ°Έμ‘°λμ§ μλ κ°μ²΄λ GCμ μν΄ μ κ±°λλ€.
βοΈ Static μμμ ν λΉλ λ©λͺ¨λ¦¬λ λͺ¨λ κ°μ²΄κ° 곡μ νμ¬ νλμ λ©€λ²λ₯Ό μ΄λμλ μ§ μ°Έμ‘°ν μ μλ μ₯μ μ κ°μ§μ§λ§ GCμ κ΄λ¦¬ λ°μ μμμ μ‘΄μ¬νκΈ°μ Static μμμ μλ λ©€λ²λ€μ νλ‘κ·Έλ¨μ μ’ λ£μκΉμ§ λ©λͺ¨λ¦¬κ° ν λΉλ μ±λ‘ μ‘΄μ¬νκ² λλ―λ‘ κΌ νμν κ²½μ°μλ§ μ¬μ©νλ κ²μ΄ μ’λ€.