π μ λ€λ¦ : ν΄λμ€ λ΄λΆμμ μ¬μ©ν λ°μ΄ν° νμ μ μΈλΆμμ μ§μ νλ κΈ°λ².
- Person ν΄λμ€λ₯Ό λ§λ€ λ μ΄μ©νμ¬ μ μλ³μ infoμ λ°μ΄ν°νμ μ Tλ‘ μΌμμ μΌλ‘ μ§μ ν΄ μ€λ€.
- μ΄ν Personμ΄ μΈμ€ν΄μ€νν λ μ§μ ν ꡬ체μ μΈ λ°μ΄ν° νμ (μ¬κΈ°μμλ string)μ΄ Tμ리μ λ€μ΄κ° λ³μ infoκ°νμ μ κ°κ² λλ€.
*νΉμ§*
1. μ λ€λ¦μ μ΄λ¦μ μλ‘ λ¬λΌμΌ νλ€. λ³΄ν΅ T λ€μ μμΉν μνλ²³μ λλ¬Έμ ννλ‘ μ¬μ©νλ€.
2. μ λ€λ¦μ μλ£νμ κΈ°λ³Έ λ°μ΄ν° νμ (int, char,...) μ΄ μλ μ°Έμ‘°ν λ°μ΄ν° νμ λ§μ μ·¨κΈνλ€.
μ λ€λ¦ νλ‘κ·Έλλ° (generic programming) : λ€μν μ’ λ₯μ λ°μ΄ν°λ₯Ό μ²λ¦¬ν μ μλ ν΄λμ€μ λ©μλλ₯Ό μμ±νλ κΈ°λ²
- μλ£νμ λν μ λ³΄κ° λ΄κ²¨μλ λ°μ€λ₯Ό μ κ³΅ν΄ μ€λ€.
μ λ€λ¦μ μ¬μ©μ΄μ
: ν΄λΉ μ½λλ₯Ό 보면, StudentPersonκ³Ό EmployeePersonμ΄ νμ λ§ λ€λ₯΄κ³ λκ°μ λ©μ»€λμ¦μ κ°μ§ κ²μ μ μ μμ.
- μ€λ³΅ μ‘΄μ¬
- → 곡ν΅μ μ‘°μ Objectλ₯Ό μ¬μ©νμ¬ StudentPersonκ³Ό EmployeePersonμ λννλ ν΄λμ€λ₯Ό λ§λ€ μ μμ§ μμκΉ? νλ λ°μμΌλ‘ μμ.
π 곡ν΅μ μ‘°μ objectλ₯Ό μ¬μ©ν μ½λ
: μ½λμ μ€λ³΅μ μ κ±°νκ³ μ infoμ μλ£νμ Objectλ₯Ό μ¬μ©νμ¬ ν΄λμ€ νλλ‘ λ¬Άμ μ μμμ§λ§, κ·Έλ‘μΈν΄ person μΈμ€ν΄μ€λ₯Ό μμ±ν λ(16μ€) 맀κ°λ³μλ‘ μ΄λ ν μλ£νμ΄ λ€μ΄μλ μ»΄νμΌ μ€λ₯κ° λ¨μ§ μκ² λμλ€.
→ λͺ¨λ νμ μ΄ μ¬ μ μκΈ° λλ¬Έμ νμ μ μ격νκ² μ νν μ μκ² λλ λ¬Έμ λ°μ.
→ νμ μ΄ μμ νμ§ μλ€.
βΆ λ°νμ μ€λ₯ λ°μ.
why? μλ°λ λ°μ΄ν° νμ μ μ€μνλ μΈμ΄λ‘, μ€μ νμ§ μμ κ°μ λ°μλ€μ΄μ§ μλλ€.
μ λ€λ¦ν
- (μ€ 6) Person μμ λ°μ΄ν° νλμ μλ£νμ νμ μ§κ³ μΆμ§ μκΈ°μ, <> μμ μλ£νμ μΌμμ μΌλ‘ λͺ
μν κ².
- μ μμμ κ°μ΄ μ λ€λ¦μ΄ 2κ° μ΄μ 볡μλ‘ νμν κ²½μ° μ½€λ§λ₯Ό μ΄μ©νμ¬ μλ£ν ꡬλΆ
- (μ€ 13)
λ¬Έμ μ
- μ λ€λ¦ μλ£νμμ int(κΈ°λ³Έ λ°μ΄ν° νμ
) μ¬μ©μΌλ‘ μΈν΄ μ€λ₯ λ°μ
- wrapper ν΄λμ€λ₯Ό μ¬μ©νμ¬ κΈ°λ³Έ λ°μ΄ν°νμ
μ κ°μ²΄μΈ κ²μ²λΌ μ·¨κΈν μ μλ€.
(intμ κ²½μ° Integer, doubleμ κ²½μ° Double μ΄λ° μμΌλ‘ κ°κ°μ κΈ°λ³Έ λ°μ΄ν° νμ λ§λ€ μ‘΄μ¬νλ λνΌν΄λμ€λ₯Ό μ¬μ©νλ©΄ λλ€)
- wrapper ν΄λμ€λ₯Ό μ¬μ©νμ¬ κΈ°λ³Έ λ°μ΄ν°νμ
μ κ°μ²΄μΈ κ²μ²λΌ μ·¨κΈν μ μλ€.
π wrapper ν΄λμ€λ₯Ό μ΄μ©ν μ½λ
- (μ€ 18) value λ©μλμ μν : λνΌ ν΄λμ€μ κ°μΈμ§ λ°μ΄ν° νμ μ¦, κΈ°λ³Έ λ°μ΄ν°νμ μΌλ‘ λ³νμμΌ μ€λ€.
μ λ€λ¦ λ©μλ
- μ κ·Ό μ μ΄μμ λ°νν νμ μ¬μ΄μ <>λ₯Ό μ΄μ©νμ¬ μΌμμ μΌλ‘ μ¬μ©ν μλ£νμ μ§μ ν΄ μ£Όλ©΄,μ§μ λ μλ£νμ΄ λ©μλ 맀κ°λ³μμ μλ£νμΌλ‘ μ¬μ©λλ€.
- λ©μλμμ λν μλ£ν μΆμ μ΄ κ°λ₯ν λ μλ΅μ΄ κ°λ₯νλ€.
μ λ€λ¦μ μ ν
: μ λ€λ¦μ μ ν μμ΄ μ¬μ©ν κ²½μ° λͺ¨λ μλ£ν νμ μ΄ μ¬μ©λ μ μλ€.
→ μ νμ΄ μλ νλ‘κ·Έλλ°μ μ’μ νλ‘κ·Έλ¨μ΄ μλλ€.
→ extends μμμ μ΄μ©νμ¬ λΆλͺ¨ ν΄λμ€μ, λΆλͺ¨ν΄λμ€μ μμλ€λ§μ΄ μλ£νμΌλ‘λ§ μ νν μ μλ€
λΆλͺ¨λ₯Ό ν΄λμ€λ‘ λ§λ€μμ κ²½μ° -> μμ μ μ₯μμ extendsλ‘λ§ μμ κ°λ₯.
λΆλͺ¨λ₯Ό μΈν°νμ΄μ€λ‘ λ§λ€μμ κ²½μ° -> μμ μ μ₯μμ extends, implementsλ‘ μμ κ°λ₯
μ΄λμ Person ν΄λμ€λ Info μΈν°νμ΄μ€ μμ νμ λ©μλ getLevel μ¬μ© κ°λ₯.
(λ§μ½ Tκ° μμνλ ν΄λμ€κ° μμ κ²½μ° Object ν΄λμ€λ₯Ό μλ°μμ μλμΌλ‘ μμνκΈ°μ getLevel λ©μλ μ¬μ© λΆκ°ν¨.)
'Language > JAVA' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JAVA] ν¨ν€μ§ (Package) (1) | 2024.08.30 |
---|---|
[JAVA] 컬λ μ (Collection) (0) | 2024.08.29 |
[JAVA] OCP (Open Closed Principle) κ°λ°© νμμ μμΉ (0) | 2024.08.26 |
[JAVA] λ©λͺ¨λ¦¬ μμ (0) | 2024.08.25 |
[JAVA] μ€λ λ(Thread) μλ―Έμ μ¬μ©λ² (4) | 2024.08.24 |