π₯οΈ λ°±μλ/Java
[ch.7] κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°(2)
OR15A
2023. 11. 11. 17:34
κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°
μΆμν
- ꡬμ μ²μ΄μ§ μκ², 곡ν΅μ λ½μλ΄κΈ°.
- λ¨μ : κ°μ²΄ μΌλΆ κΈ°λ₯λ§ μ¬μ©ν¨.
- μ₯μ : ꡬ체μ μΈ κ΅¬νμ μ¨κΈ°κ³ ν΅μ¬ κ°λ μ΄λ κΈ°λ₯μ μ§μ€ν μ μμ.
λ€νμ±
- μ‘°μν΄λμ€νμ
μ μ°Έμ‘°λ³μλ‘ μμν΄λμ€μ μΈμ€ν΄μ€λ₯Ό κ°λ¦¬ν€λ κ²(μ°Έμ‘°νλ κ²)
μ°Έμ‘°λ³μμ νλ³ν
- μλ‘ μμκ΄κ³μΌλλ§ κ°λ₯ν¨.
- νλ³νμ μ°Έμ‘°λ³μμ νμ μ λ³νO, μΈμ€ν΄μ€λ³νX
- λ¨μ§ μ°Έμ‘°νκ³ μλ μΈμ€ν΄μ€μμ μ¬μ©ν μ μλ λ©€λ²μ κ°μλ₯Ό μ‘°μ νκΈ° μν κ².
- μμνμ μ μ°Έμ‘°λ³μλ₯Ό μ‘°μνμ μΌλ‘ νλ³ν νλ κ²½μ°μλ μλ΅μ΄ κ°λ₯ν¨.
instanceof μ°μ°μ
- μ°Έμ‘°λ³μκ° μ°Έμ‘°νκ³ μλ μΈμ€ν΄μ€μ μ€μ νμ
μ νμΈνκΈ° μν κ².
- μμ: Tvνμ μ μ°Έμ‘°λ³μ tκ° CaptionTvμΈμ€ν΄μ€λ₯Ό μ°Έμ‘°νλμ§, TvμΈμ€ν΄μ€λ₯Ό μ°Έμ‘°νλμ§ μμμΌ CaptionTvνμ μ μ°Έμ‘°λ³μ ctμκ² μ£Όμμ λ¬μ΄ κ°λ₯/λΆκ°λ₯νμ§ μ μ μκΈ° λλ¬Έμ.(=νλ³ν=μμκ΄κ³κ°μ μΈμ€ν΄μ€μ£Όμμ λ¬)
μ°Έμ‘°λ³μμ μΈμ€ν΄μ€μ μ°κ²°
- λ©μλλ νμ λμ€μ μκΈ΄ κ². μ°Έμ‘°λ³μ νμ μκ΄ μμ΄ μ€μ μΈμ€ν΄μ€μ νμ μΈ μμν΄λμ€μ μ μλ λ©μλκ° νΈμΆλ¨.
λ€νμ±
λ€νμ±μ μ₯μ
- β 맀κ°λ³μμ λ€νμ± μ μ©νκΈ°
- νλμ λ©μλλ‘ λ§€κ°λ³μλ‘ μ λ¬λ κ°μ²΄μ μμ νμ μΈμ€ν΄μ€λ©΄ μ΄λ κ²μ΄λ λ°μλ€μΌ μ μμ.
- λ©μλμ 맀κ°λ³μκ° Aνμ μ μ°Έμ‘°λ³μλΌλ©΄ μ΄ λ©μλμ 맀κ°λ³μλ‘ Aνμ μ μμνμ μ°Έμ‘°λ³μλ μ΄λ κ²μ΄λ 맀κ°λ³μλ‘ λ°μλ€μΌ μ μλ κ².
- void method ( A a ) { ... }
- β‘μ¬λ¬ μ’
λ₯μ κ°μ²΄ λ°°μ΄λ‘ λ€λ£¨κΈ°
- 곡ν΅μ‘°μμ κ°μ§ μλ‘ λ€λ₯Έ μ’ λ₯μ κ°μ²΄λ₯Ό λ°°μ΄λ‘ λ€λ£° μ μμ.
- μ‘°μνμ μ μ°Έμ‘°λ³μ λ°°μ΄μ μ μΈν΄μ, 곡ν΅μ‘°μμ κ°μ§ μλ‘ λ€λ₯Έ μ’ λ₯μ κ°μ²΄λ€μ λ°°μ΄λ‘ λ¬Άμ μ μμ.
μΆμν΄λμ€
- μΌλ°ν΄λμ€μ μ μ¬νμ§λ§ λ―Έμμ± λ©μλ(μΆμλ©μλ)λ₯Ό ν¬ν¨νκ³ μμ.
- μλ‘μ΄ ν΄λμ€λ₯Ό μμ±νλλ° μμ΄μ λ°νμ΄ λλ μ‘°μν΄λμ€λ‘μ μ€μν μλ―Έλ₯Ό κ°μ§.
- νμν΄λμ€μμ 곡ν΅μ μΌλ‘ μ¬μ©λ μ μλ νλμ λ©μλλ₯Ό μ μν¨.
- ν€μλ abstectλ₯Ό λΆμ.
- μμ±μ, λ©€λ²λ³μ, λ©μλλ₯Ό κ°μ§ μ μμ.
- κ·Έλ¬λ μΈμ€ν΄μ€ μμ±μ ν μ μμ. μΆμν΄λμ€λ λ―Έμμ±ν΄λμ€μ΄κΈ° λλ¬Έμ μ체μ μΌλ‘ μμ ν κ°μ²΄κ° λ μ μμ. κ°μ²΄ μμ± XμΆμλ©μλ
- λ©μλ λ΄μ©μ΄ μμλ°λ ν΄λμ€μ λ°λΌ λ¬λΌμ§ μ μκΈ° λλ¬Έμ μ μΈλΆλ§ μμ±νκ³ , μ£ΌμμΌλ‘ μ΄λ€ κΈ°λ₯μ μνν λͺ©μ μΌλ‘ μμ±λμλμ§ μλ €μ€.
- μ€μ λ΄μ©μΈ ꡬνλΆλ μμλ°λ ν΄λμ€μμ ꡬννλλ‘ λΉμλκ³ κ΅¬νλΆκ° μμΌλ―λ‘ { }κ΄νΈ λμ ;λ₯Ό λΆμ¬μ€.
- κ΅³μ΄ abstractλ₯Ό λΆμ¬μ μΆμλ©μλλ‘ μ μΈνλ μ΄μ λ μμν΄λμ€μμ μΆμλ©μλλ₯Ό λ°λμ ꡬννλλ‘ κ°μ νκΈ° μν΄μμ.
μΈν°νμ΄μ€
μΈν°νμ΄μ€λ₯Ό μ΄μ©ν λ€μ€μμ
- (κ³΅ν΅ )μΈν°νμ΄μ€μ μΆμλ©μλ μΈν°νμ΄μ€μ μΆμλ©μλ
- ν΄λμ€κ° μΈν°νμ΄μ€μ μ‘°μ ν΄λμ€λ₯Ό λμμ μμνκ³ , μμ λ°μ μΈν°νμ΄μ€μ μ‘°μ ν΄λμ€μ κ°μ μ΄λ¦μ μΆμ λ©μλκ° μλ κ²½μ°
- β . ν΄λμ€μμ μ§μ λ©μλλ₯Ό ꡬννλ©΄ (λ©μλμ€λ²λΌμ΄λ©νλ©΄), ν΄λμ€μμ μ§μ ν΄λΉ λ©μλλ₯Ό ꡬννλ©΄ μΈν°νμ΄μ€μ μΆμ λ©μλλ 무μλκ³ , ν΄λΉ ν΄λμ€μ λ©μλκ° νΈμΆλ¨.
- β‘ν΄λμ€μμ μ§μ ν΄λΉ λ©μλλ₯Ό ꡬννμ§ μμΌλ©΄, μ‘°μ ν΄λμ€μ λ©μλκ° μ°μ μ μΌλ‘ νΈμΆλλ κ²μ΄ μΌλ°μ . μΈν°νμ΄μ€μ μΆμ λ©μλλ 무μλκ³ , μ‘°μ ν΄λμ€μ λ©μλκ° νΈμΆλ¨.
μΈν°νμ΄μ€λ₯Ό μ΄μ©ν λ€νμ±
- μΈν°νμ΄μ€ μμ μ΄λ₯Ό ꡬνν ν΄λμ€μ μ‘°μμ΄λΌ ν μ μμΌλ―λ‘, ν΄λΉ μΈν°νμ΄μ€ νμ μ μ°Έμ‘°λ³μλ‘ μ΄λ₯Ό ꡬνν ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μ°Έμ‘° κ°λ₯ν¨.
- μΈν°νμ΄μ€νμ
μΌλ‘μ νλ³νλ κ°λ₯ν¨.
- β 맀κ°λ³μκ° μΈν°νμ΄μ€ νμ
- λ©μλ νΈμΆ μ ν΄λΉμΈν°νμ΄μ€λ₯Ό ꡬνν ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό 맀κ°λ³μλ‘ μ 곡ν¨.
- λ©μλ νΈμΆ μ ν΄λΉμΈν°νμ΄μ€λ₯Ό ꡬνν ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό 맀κ°λ³μλ‘ μ 곡ν¨.
- β‘λ°ννμ
μ΄ μΈν°νμ΄μ€ νμ
- λ©μλκ° ν΄λΉ μΈν°νμ΄μ€λ₯Ό ꡬνν ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό λ°νν¨.
- λ©μλκ° ν΄λΉ μΈν°νμ΄μ€λ₯Ό ꡬνν ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό λ°νν¨.
μΈν°νμ΄μ€μ μ₯μ
- κ°λ°μκ° λ¨μΆ
- λ©μλλ₯Ό νΈμΆνλ μͺ½μμ λ©μλ λ΄μ©κ³Ό κ΄κ³μμ΄ μ μΈλΆλ§ μμλ μμ±μ΄ κ°λ₯νκΈ° λλ¬Έ
- νμ€ν κ°λ₯
- κΈ°λ³Ένμ μΈν°νμ΄μ€λ‘ μμ±νλ©΄ μΌκ΄λκ³ μ ννλ νλ‘κ·Έλ¨ κ°λ°μ΄ κ°λ₯ν¨
- μλ‘ κ΄κ³μλ ν΄λμ€λ€μ κ΄κ³λ₯Ό λ§Ίμ΄μ€ μ μμ
- νλμ μΈν°νμ΄μ€λ₯Ό 곡ν΅μ μΌλ‘ ꡬννκ²νλ©΄ κ΄κ³λ§Ίμ΄μ£ΌκΈ°κ° κ°λ₯ν¨.
- λ
립μ μΈ νλ‘κ·Έλλ°μ΄ κ°λ₯
- μ μΈ/ꡬνμ΄ λΆλ¦¬λμ΄ μ€μ ꡬνμ λ 립μ μΈ κ·Έλ‘κ·Έλλ°μ΄ κ°λ₯. ν΄λμ€κ°μ μ§μ κ΄κ³λ₯Ό κ°μ κ΄κ³λ‘ λ³κ²½νλ©΄ λ€λ₯Έ ν μͺ½μ λ³κ²½μ΄ μν₯μ λ―ΈμΉμ§ μμ.
- μμ κ·Έλ¦Όμμ C, Dμλ§ μλ‘μ΄ λ©μλλ₯Ό μΆκ°νκ³ μΆμ λ
- β μνλ λ©μλλ₯Ό μ μνλ μ μΈν°νμ΄μ€ μ μ
- β‘μ΄ μΈν°νμ΄μ€λ₯Ό ꡬννλ Fν΄λμ€ μμ±
- β’ν΄λμ€ C,Dκ° μ μΈν°νμ΄μ€ ꡬν & μΈν°νμ΄μ€ ꡬνν Fν΄λμ€λ₯Ό ν¬ν¨νλλ‘ νκ³ → λ΄λΆμ μΌλ‘ νΈμΆν΄μ μ¬μ©νλ©΄ λ¨.
μΈν°νμ΄μ€μ μ΄ν΄
- ν΄λμ€λ₯Ό μ¬μ©νλμͺ½, ν΄λμ€λ₯Ό μ 곡νλμͺ½μ΄ μμ.
- λ©μλλ₯Ό μ¬μ©(νΈμΆ)νλ μͺ½μμλ λ©μλμ μ μΈλΆλ§ μλ©΄ λ¨.
- μ§μ κ²°ν©,κ°νκ²°ν©μΌ λ μΈν°νμ΄μ€λ₯Ό νμ©νλ©΄ κ°μ κ²°ν©,μ μ°νκ²°ν©μΌλ‘ λ°κΏ μ μμ.
μΆμν΄λμ€ vs μΈν°νμ΄μ€
)
λν΄νΈ λ©μλ
- “μΈν°νμ΄μ€μμ λ©μλλ₯Ό μΆκ°”= μΈν°νμ΄μ€λ₯Ό ꡬνν ν΄λμ€μ΄ μλ‘μ΄ λ©μλλ₯Ό ꡬνν΄μΌν¨.μ΄κΈ° λλ¬Έμ κΈ°μ‘΄ ν΄λμ€λ€μκ² λ§€μ° λΆλ΄μ.
- μΈν°νμ΄μ€λ₯Ό λ³κ²½νμ§ μλ κ²μ΄ μ΅μ μ΄μ§λ§ λ³νκ° μκΈΈ μ μμ. κ·Έλμ λν΄νΈλ©μλλ₯Ό λ§λ¦.
- λν΄νΈ λ©μλλ μΆμλ©μλμ κΈ°λ³Έμ μΈ κ΅¬νμ μ 곡νλ λ©μλ.
- μΆμλ©μλκ° μλκΈ° λλ¬Έμ μλ‘ μΆκ°λμ΄λ ν΄λΉ μΈν°νμ΄μ€λ₯Ό ꡬνν ν΄λμ€λ€μ΄ λ³κ²½νμ§ μμλλ¨.
- public default void method() { ... }
λ©μλμ μ΄λ¦ μ€λ³΅ μ
λ΄λΆν΄λμ€
λ΄λΆν΄λμ€
- ν΄λμ€ λ΄μ μ μΈλ ν΄λμ€.
- λ ν΄λμ€κ° μλ‘ κΈ΄λ°ν κ΄κ³μΌ λ νμͺ½μ λ΄λΆν΄λμ€λ‘ ν¬ν¨ν¨.
- λ΄λΆν΄λμ€λ μ μΈ μμΉμ λ°λΌ μ’ λ₯κ° λ€λ¦.
λ΄λΆν΄λμ€μ μ₯μ
- λ΄λΆν΄λμ€μμ μΈλΆν΄λμ€μ λ©€λ²λ€μ μ½κ² μ κ·Ό κ°λ₯ν¨.
- μ½λμ 볡μ‘μ±μ μ€μ¬μ€.
- μΈλΆλ‘λΆν° λΆνμν ν΄λμ€λ₯Ό κ°μΆ€=(μΊ‘μν).
μ μΈμμΉμ λ°λ₯Έ λ΄λΆν΄λμ€
- μΈμ€ν΄μ€ν΄λμ€
- μΈμ€ν΄μ€λ³μμ κ°μ μ±μ§,κ·μΉμ κ°μ§.
- μ€νν±ν΄λμ€
- μ€νν±λ³μμ κ°μ μ±μ§,κ·μΉμ κ°μ§.
- λ©€λ²λ³μμ κ°μ μ±μ§κ³Ό κ·μΉμ κ°μ§λ€λ κ²μabstract, final, private, protectedλ₯Ό λΆμΌ μ μλ κ².
- μ§μν΄λμ€
- μΈλΆν΄λμ€μ λ©μλλ μ΄κΈ°ν λΈλ‘ μμ μ μΈν¨.
- μ§μν΄λμ€λ μΈλΆν΄λμ€μ μΈμ€ν΄μ€λ©€λ²μ μ€νν±λ©€λ²λ₯Ό λͺ¨λ μ¬μ© κ°λ₯ν¨.
- μ§μν΄λμ€κ° ν¬ν¨λ λ©μλμ μ μλ finalμ΄ λΆμ μ§μλ³μλ μ¬μ© κ°λ₯ν¨.
- μ΅λͺ
ν΄λμ€
- ν΄λμ€ μ μΈκ³Ό κ°μ²΄μμ±μ λμμ νλ κ².
- λ°λΌμ λ¨ νλ²λ§ μ¬μ©, μ€μ§ νλμ κ°μ²΄λ§ μμ±.
- μΌνμ© ν΄λμ€.
- new λΉλ €μ΄μ΄λ¦ ( ) {...}
- λΉλ €μ΄μ΄λ¦: μ‘°μν΄λμ€μ΄λ¦orꡬνμΈν°νμ΄μ€μ΄λ¦.
- μ΄λ¦μ λΉλ €μ°κΈ° λλ¬Έμ μμ±μλ₯Ό κ°μ§ μ μμ. μ€λ‘μ§ λ¨ νλμ ν΄λμ€λ₯Ό μμνκ±°λ, λ¨ νλμ μΈν°νμ΄μ€λ§ ꡬνν¨.