2022. 4. 28. 21:27γJAVA/μλ°μ μ μ
1οΈβ£ μΈν°νμ΄μ€μ μ₯μ
- κ°λ° μκ°μ λ¨μΆν μ μλ€.
: μΌλ¨ μΈν°νμ΄μ€κ° μμ±λλ©΄, μ΄λ₯Ό μ¬μ©ν΄μ νλ‘κ·Έλ¨μ μμ±νλ κ²μ΄ κ°λ₯νκΈ° λλ¬Έμ λ©μλλ₯Ό νΈμΆνλ μͺ½μμλ λ©μλμ λ΄μ©μ κ΄κ³μμ΄ μ μΈλΆλ§ μλ©΄ λκΈ° λλ¬Έμ κ°λ° μκ°μ λ¨μΆν μ μλ€.
- λ³κ²½μ μ 리ν μ μ°ν μ€κ³κ° κ°λ₯νλ€.
- νμ€νκ° κ°λ₯νλ€.
: νλ‘μ νΈμ μ¬μ©λλ κΈ°λ³Έ νμ μΈν°νμ΄μ€λ‘ μμ±ν λ€μ, κ°λ°μλ€μκ² μΈν°νμ΄μ€λ₯Ό ꡬννμ¬ νλ‘κ·Έλ¨μ μμ±νλλ‘ ν¨μΌλ‘μ¨ λ³΄λ€ μΌκ΄λκ³ μ ννλ νλ‘κ·Έλ¨μ κ°λ°μ΄ κ°λ₯νλ€.
- μλ‘ κ΄κ³μλ ν΄λμ€λ€μ κ΄κ³λ₯Ό λ§Ίμ΄μ€ μ μλ€.
: μλ‘ μμκ΄κ³μ μμ§λ μκ³ , κ°μ μ‘°μ ν΄λμ€λ₯Ό κ°μ§κ³ μμ§ μμ μλ‘ μλ¬΄λ° κ΄κ³λ μλ ν΄λμ€λ€μκ² νλμ μΈν°νμ΄μ€λ₯Ό 곡ν΅μ μΌλ‘ ꡬννλλ‘ ν¨μΌλ‘μ¨ κ΄κ³λ₯Ό λ§Ίμ΄μ€ μ μλ€.
- λ 립μ μΈ νλ‘κ·Έλλ°μ΄ κ°λ₯νλ€.
: μΈν°νμ΄μ€λ₯Ό μ΄μ©νλ©΄ ν΄λμ€μ μ μΈκ³Ό ꡬνμ λΆλ¦¬μν¬μ μκΈ° λλ¬Έμ μ€μ ꡬνμ λ 립μ μΈ νλ‘κ·Έλ¨μ μμ±νλ κ²μ΄ κ°λ₯νλ€.
2οΈβ£ μΈν°νμ΄μ€ μ΄ν΄
- ν΄λμ€λ₯Ό μ¬μ©νλ μͺ½(User)κ³Ό ν΄λμ€λ₯Ό μ 곡νλ μͺ½(Provider) μ΄ μλ€.
- λ©μλλ₯Ό μ¬μ©(νΈμΆ)νλ μͺ½ (User) μμλ μ¬μ©νλ €λ λ©μλ (Provider) μ μ μΈλΆλ§ μλ©΄ λλ€.
- ν΄λμ€ Aμ ν΄λμ€ B λ μΈμ€ν΄μ€λ₯Ό μμ±νκ³ λ©μλλ₯Ό νΈμΆνλ€. μ΄ λ ν΄λμ€λ μλ‘ μ§μ μ μΈ κ΄κ³μ μλ€.
-> μ΄λ° μ§μ μ μΈ κ΄κ³μ λ ν΄λμ€λ ν μͺ½ Provider κ° λ³κ²½λλ©΄ λ€λ₯Έ ν μͺ½ User λ λ³κ²½λμ΄μΌ νλ€λ λ¨μ μ΄ μλ€.
κ·Έλ¬λ ν΄λμ€ A κ° ν΄λμ€ B λ₯Ό μ§μ νΈμΆνμ§ μκ³ μΈν°νμ΄μ€λ₯Ό 맀κ°μ²΄λ‘ ν΄μ ν΄λμ€ Aκ° μΈν°νμ΄μ€λ₯Ό ν΅ν΄μ ν΄λμ€ Bμ λ©μλμ μ κ·Όνλλ‘ νλ©΄, ν΄λμ€ Bμ λ³κ²½μ¬νμ΄ μκΈ°κ±°λ ν΄λμ€ Bμ κ°μ κΈ°λ₯μ λ€λ₯Έ ν΄λμ€λ‘ λ체 λμ΄λ ν΄λμ€ Aλ μ ν μν₯μ λ°μ§ μλλ‘ νλ κ²μ΄ κ°λ₯νλ€.
ν΄λμ€ Aλ μΈν°νμ΄μ€λ₯Ό ν΅ν΄ μ€μ λ‘ μ¬μ©νλ ν΄λμ€μ μ΄λ¦μ λͺ°λΌλ λκ³ μ¬μ§μ΄λ μ€μ λ‘ κ΅¬νλ ν΄λμ€κ° μ‘΄μ¬νμ§ μμλ λ¬Έμ λμ§ μλλ€. ν΄λμ€ Aλ μ€μ§ μ§μ μ μΈ κ΄κ³μ μλ μΈν°νμ΄μ€ Iμ μν₯λ§ λ°λλ€.
3οΈβ£ λν΄νΈ λ©μλμ static λ©μλ
μλλ μΈν°νμ΄μ€μ μΆμ λ©μλλ§ μ μΈν μ μλλ°, jdk1.8λΆν° λν΄νΈ λ©μλμ static λ©μλλ μΆκ°ν μ μκ² λμλ€.
-> static λ©μλλ μΈμ€ν΄μ€μ κ΄κ³κ° μλ λ 립μ μΈ λ©μλμ΄κΈ° λλ¬Έμ μΈν°νμ΄μ€μ μΆκ°νμ§ λͺ»ν μ΄μ κ° μμλ€!
- λν΄νΈ λ©μλ
: μ‘°μ ν΄λμ€μ μλ‘μ΄ λ©μλλ₯Ό μΆκ°νλ κ²μ λ³ μΌμ΄ μλμ§λ§, μΈν°νμ΄μ€μ κ²½μ°μλ λ³΄ν΅ ν° μΌμ΄ μλλ€.
μΈν°νμ΄μ€μ λ©μλλ₯Ό μΆκ°νλ€λ κ²μ, μΆμ λ©μλλ₯Ό μΆκ°νλ€λ κ²μ΄κ³ , μ΄ μΈν°νμ΄μ€λ₯Ό ꡬνν κΈ°μ‘΄μ λͺ¨λ ν΄λμ€λ€μ΄ μλ‘ μΆκ°λ λ©μλλ₯Ό ꡬνν΄μΌνκΈ° λλ¬Έμ΄λ€.
λν΄νΈ λ©μλλ μΆμ λ©μλμ κΈ°λ³Έμ μΈ κ΅¬νμ μ 곡νλ λ©μλλ‘, μΆμ λ©μλκ° μλκΈ° λλ¬Έμ λν΄νΈ λ©μλκ° μλ‘ μΆκ°λμ΄λ ν΄λΉ μΈν°νμ΄μ€λ₯Ό ꡬνν ν΄λμ€λ₯Ό λ³κ²½νμ§ μμλ λλ€.
4οΈβ£ λ΄λΆ ν΄λμ€ inner class
λ΄λΆ ν΄λμ€λ ?
ν΄λμ€ λ΄μ μ μΈλ ν΄λμ€μ΄λ€.
ν ν΄λμ€λ₯Ό λ€λ₯Έ ν΄λμ€μ λ΄λΆ ν΄λμ€λ‘ μ μΈνλ©΄ λ ν΄λμ€μ λ©€λ²λ€ κ°μ μλ‘ μ½κ² μ κ·Όν μ μλ€λ μ₯μ κ³Ό μΈλΆμλ λΆνμν ν΄λμ€λ₯Ό κ°μΆ€μΌλ‘μ¨ μ½λμ 볡μ‘μ±μ μ€μΌ μ μλ€λ μ₯μ μ μ»μ μ μλ€.
- λ΄λΆ ν΄λμ€μμ μΈλΆ ν΄λμ€μ λ©€λ²λ€μ μ½κ² μ κ·Όν μ μλ€.
- μ½λμ 볡μ‘μ±μ μ€μΌ μ μλ€. (μΊ‘μν)
λ΄λΆ ν΄λμ€μ μ’ λ₯μ νΉμ§
λ΄λΆ ν΄λμ€μ μ’ λ₯λ λ³μμ μ μΈμμΉμ λ°λ₯Έ μ’ λ₯μ κ°λ€,.
λ΄λΆ ν΄λμ€λ λ§μΉ λ³μλ₯Ό μ μΈνλ κ²κ³Ό κ°μ μμΉμ μ μΈν μ μμΌλ©°, λ³μμ μ μΈ μμΉμ λ°λΌ μΈμ€ν΄μ€ λ³μ, ν΄λμ€ λ³μ static λ³μ, μ§μλ³μλ‘ κ΅¬λΆλλ κ²κ³Ό κ°μ΄ λ΄λΆ ν΄λμ€λ μ μΈμμΉμ λ°λΌ ꡬλΆλμ΄ μ§λ€.
- μΈμ€ν΄μ€ ν΄λμ€ instance class
: μΈλΆ ν΄λμ€μ λ©€λ²λ³μ μ μΈ μμΉμ μ μΈλλ©°, μΈλΆ ν΄λμ€μ μΈμ€ν΄μ€ λ©€λ²μ²λΌ λ€λ£¨μ΄μ§λ€. μ£Όλ‘ μΈλΆ ν΄λμ€μ μΈμ€ν΄μ€ λ©€λ²λ€κ³Ό κ΄λ ¨λ μμ μ μ¬μ©λ λͺ©μ μΌλ‘ μ μΈλλ€.
- μ€νν± ν΄λμ€ static class
: μΈλΆ ν΄λμ€μ λ©€λ²λ³μ μ μΈμμΉμ μ μΈνλ©°, μΈλΆ ν΄λμ€μ static λ©€λ²μ²λΌ λ€λ£¨μ΄μ§λ€. μ£Όλ‘ μΈλΆ ν΄λμ€μ static λ©€λ², νΉν static λ©μλμμ μ¬μ©λ λͺ©μ μΌλ‘ μ μΈλλ€.
- μ§μ ν΄λμ€ local class
: μΈλΆ ν΄λμ€μ λ©μλλ μ΄κΈ°νλΈλ μμ μ μΈνλ©°, μ μΈλ μμ λ΄λΆμμλ§ μ¬μ©λ μ μλ€.
- μ΅λͺ ν΄λμ€ anonymous class
: ν΄λμ€μ μ μΈκ³Ό κ°μ²΄μ μμ±μ λμμ νλ μ΄λ¦μλ ν΄λμ€(μΌνμ©)