κ΅λΉμ§μ D+18
- μμ -
μμ
μ°λ¦¬κ° κ°μ₯ νν μκ³ μλ μ©μ΄μ ν΄μμ°¨μμμ μμμ μμμκ² λ¬Όλ €μ€λ€λ μλ―Έλ₯Ό κ°μ§κ³ μλ€.
μ΄λ¬ν μμμ μλ―Έλ νλ¦°κ²μ μλμ§λ§ μ°λ¦¬κ° μμμΌν κΈ°κ³μ μΈ μλ―Έλ‘ ν΄μνλ©΄ μμμ λ©λͺ¨λ¦¬ λΈλ‘μ κ²°ν©μ μλ―Ένλ€.
μ¦, μμμ Heapμμμμμ λ©λͺ¨λ¦¬ κ²°ν©μ΄λΌκ³ ν μ μλ€.
μμμ μ₯/λ¨μ
λ¨Όμ μμμ μ₯μ μ μ¬νμ©μ μΈ μΈ‘λ©΄μ΄ μλ€λ κ²μ΄λ€.
μλ₯Ό λ€μ΄ μ€λͺ
ν΄ λ³΄μλ©΄, λ§μ½ μ°λ¦¬κ° λλ¬Όλ³μ νλ‘κ·Έλ¨μ λ§λ€λ μμμ΄ μμ κ²½μ°μ λλ¬Όλ€μ μ§μ°°μ λ°μ λ νμ νΌκ²μ¬λ₯Ό λ°μμΌ νλλ° λ€μ΄μ€λ λλ¬Όλ§λ€ νΌκ²μ¬λ₯Ό λ§€λ² λ£μ΄μΌνλ λ²κ±°λ‘μμ΄ μμ κ²μ΄λ€.
κ·Έλ°λ° μ°μΈ‘ κ·Έλ¦Όμ²λΌ λ§€λ² νΌκ²μ¬λ₯Ό λλ¬Όμμ λ£μ΄μ£Όλ κ²μ΄ μλλΌ νΌκ²μ¬λΌλ ν΄λμ€λ₯Ό λ§λ λ€μμ λλ¬Όλ€μκ² μμν΄μ€λ€λ©΄ λλ¬Όλ€μκ² λ§€λ² νΌκ²μ¬λ₯Ό μ
λ ₯νμ§ μμλ λ λΏλ§ μλλΌ μλ‘ μ€λ λλ¬Όλ€μκ²λ μ μ©λμ΄ μ¬νμ©μ μΈ μΈ‘λ©΄μμ νΈλ¦¬νλ€λ κ²μ μ μ μλ€.
νμ§λ§ μμμλ λ¨μ μ΄ μ‘΄μ¬νλλ° λ§μ½μ νμ‘κ²μ¬ ν΄λμ€μ μΈκ°μ΄ νΌκ²μ¬λ₯Ό λ°μΌλ €κ³ νμ‘κ²μ¬ ν΄λμ€λ₯Ό μμλ°μΌλ €κ³ ν λ μμμ΄ κ°λ₯νκ² μ²λ¦¬λ κ²½μ° μ΄κ±΄ μ½λμμ λ¬Έμ κ° λμ§λ μμ§λ§ μμμ μΌλ‘ λλ¬Όλ³μμμ μΈκ°μ΄ νΌκ²μ¬λ₯Ό λ°λ건 μ΄ν΄λκΈ° μ΄λ ΅λ€.
μ΄λ κ² μ μ±
μ΄ λΆμ¬ν μ¬νμ©μ μ¬μ©νλ κ²½μ°κ° λ°μλ μ μλ€λ κ²μ΄λ€.
μμ μ€κ³ κΈ°μ€
μμ μμμ λ¨μ μ²λΌ μ μ± μ΄ λΆμ¬ν μ¬νμ© μ¬μ©μ λ°©μ§νκΈ° μν΄μ μ°λ¦¬λ μμμ μ μ§κΈ°μν 3κ°μ§ κ΄κ³λ₯Ό κ³ λ €ν΄μΌνλ€.
• is a κ΄κ³
- κ³ μμ΄λ λλ¬Όμ΄λ€.
- μ¬μλ λλ¬Όμ΄λ€.
• is a kind of κ΄κ³
- κ³ μμ΄λ λλ¬Όμ μ’
λ₯μ΄λ€.
- μ¬μλ λλ¬Όμ μ’
λ₯μ΄λ€.
• has a κ΄κ³
- μ©μ¬λ 무기λ₯Ό κ°μ§κ³ μλ€.
=> has a κ΄κ³λ ννμ κ°λ₯νμ§λ§ νλ‘κ·Έλλ°μ μΌλ‘ μμμ ꡬννμ§ μλλ€κ³ νλ€.
=> has a κ΄κ³μ μ±λ¦½λλ κ°μ is a κ΄κ³λ is a kind of κ΄κ³μ λμ
ν΄ νμΈν΄λ³΄λ©΄ λ€μ κ΄΄λν¨μ΄ μκΈ° λλ¬Έμ΄λ€.
ꡬ쑰
κ·Έλ¦Όκ³Ό κ°μ΄ κ°, κ³ μμ΄, μμμ΄κ° Animalμ μνλ μ΄λ° κ΄κ³λ₯Ό μμκ΄κ³λΌκ³ νλ©°, μ΄λμ Animalμ λΆλͺ¨ν΄λμ€λΌκ³ νλ©°, κ°, κ³ μμ΄, μμμ΄ κ°μ νλ¨ ν΄λμ€λ μμν΄λμ€λΌκ³ νλ€.
λ¬Έλ²
// λΆλͺ¨ ν΄λμ€
class Parent(){
...
}
// μμ ν΄λμ€
class Child extends Parent(){
...
}
μ¬μ©λ°©λ²μ μμλ°κ³ μΆμ μμ ν΄λμ€μμ extends λΆλͺ¨ν΄λμ€ λ₯Ό λΆμ¬μ€μ μ¬μ©νλ©΄ λλ€.
extendsλ₯Ό μ¬μ©ν΄μ μμμ²λΌ μμμ ν΄μ£Όμλ€λ©΄ Parentμ Child λν΄λμ€λ λ©λͺ¨λ¦¬κ° ν©μ³μ§κ² λλ©° Parentμ μμ±μ΄λ λ©μλλ₯Ό μΆκ°μ μΌλ‘ μ¬μ©ν μ μλ μλ‘μ΄ Child ν΄λμ€κ° λλ κ²μ΄λ€.
// λΆλͺ¨ ν΄λμ€
class Parent(){
...
}
// μμ ν΄λμ€
class Child extends Parent(){
// staticμ μ¬μ©ν νλ
private static int num;
// staticμ μ¬μ©ν λ©μλ
public static int getNum()
{
...
}
...
}
μ΄λ μμμ΄ μΌμ΄λκ³ μλ μμ μμ λΆλͺ¨ν΄λμ€λ μμν΄λμ€μ staticμΌλ‘ μ§μ λ νλλ λ©μλκ° μλκ²½μ° static κ°μ κ²½μ° Global μμμ λ€μ΄κ°κΈ° λλ¬Έμ μμμ λ©μΉ΄λμ¦κ³Όλ λ³κ°λ‘ μκ°ν΄μ£Όλ©΄ λλ€.
μμ±μλ₯Ό ν΅ν΄ μμ보λ μμν΄λμ€μ μ κ·Ό μμ
λ€μμ Animalμ΄λΌλ λΆλͺ¨ ν΄λμ€λ‘λΆν° Dogκ° μμλ°μ μ½λλ₯Ό 보μ¬μ£Όλ λͺ¨μ΅μ΄λ€.
μ΄λ κ° μμ±μμ μμ±μκ° μ€νλμμ λ μ€νλμλ€λ 문ꡬλ₯Ό μΆλ ₯νλ μ½λλ₯Ό μΆκ°μ μΌλ‘ μμ±ν΄ μ€ λͺ¨μ΅μ λ³Ό μ μλ€.
μ΄λ λ§μ½μ Main.java 6λ²μ§Έ μ€μμ Dog()κ°μ²΄λ₯Ό μμ±ν΄ μ£Όμμλ κ³Όμ° μ΄λ€ ν΄λμ€μ μλ κ°μ΄ λ¨Όμ μΆλ ₯λκ² λ κΉ?
μΌλ¨ λ΅μ Animal → Dog μμΌλ‘ νΈμΆμ΄ μ§νλλ€λ κ²μ μ½μμ°½μ ν΅ν΄ νμΈν μ μμλ€.
κ·Έλ°λ° λ λμκ°μ Main.javaμ 6λ²μ§Έ μ€μ λΈλ μ΄ν¬ ν¬μΈνΈλ₯Ό μ‘κ³ λλ²κΉ
μ λλ Έμλλ μ‘°κΈ λ€λ₯Έ κ²°κ³Όκ° λμ€λ κ²μ νμΈν μ μμλ€.
λλ²κΉ
μ λ리면 λ¨Όμ Dogμ κΈ°λ³Έμμ±μλ‘ κ°κ²λλ€.
κ·Έλ°λ° Dogμ κΈ°λ³Έμμ±μ μμ λ€μ΄κ° κ°μ μ΄κΈ°ννλ κ²μ΄ μλλΌ λ€μμ Animalμ κΈ°λ³Έμμ±μλ‘ μ΄λνλ©° μ΄λλΆν° μ°¨λ‘λ‘ κ°μ μ΄κΈ°ννκ³ μ€ν문ꡬλ₯Ό μΆλ ₯ν λ€μ Dogμ κΈ°λ³Έμμ±μ μμΌλ‘ λ€μ΄κ° κ°μ μ΄κΈ°ννκ³ μ€ν문ꡬλ₯Ό μΆλ ₯νλ μμΌλ‘ μμ±μλ₯Ό μ κ·Όνμλ€.
μ΄λ‘μ¨ μ°λ¦¬λ νΈμΆ μμμ νΈμΆλκΈ° μ΄μ κΉμ§μ μμλ₯Ό ꡬλΆμ§μ΄μ μκ³ μμ΄μΌ νλ€.
super()
superμ λν΄μ 본격μ μΌλ‘ μμ보기 μν΄ superλΌλ κ²μ΄ μ νμνμ§μ λν΄μ μ νμκ° μλ€.
μ°λ¦¬κ° μ¬ν λ°°μμ¨ μμμ νΉμ§μ λΆλͺ¨ν΄λμ€λ‘λΆν° μμλ°μΌλ©΄ λ°λ‘ μ μΈ μμ΄ λΆλͺ¨ν΄λμ€μ νλλ λ©μλλ₯Ό μ¬μ©ν μ μλ€κ³ λ°°μ λ€.
κ·Έλμ Dog ν΄λμ€ νλμ Animal ν΄λμ€ νλκ°μ mainμΌλ‘λΆν° λ°μμ€λ©΄ μ΄μ°¨νΌ Animal νλλ μμλμ΄μλ μνλΌ μμ 보기μ²λΌ thisμ²λ¦¬λ₯Ό κ±°μ³μ κ°μ μ΄κΈ°ν ν΄μ€λ λλ€κ³ μκ°ν μ μλ€.
λ¬Όλ‘ λΉλλ₯Ό μν€λ©΄ λ¬Έμ μμ΄ μ λμκ°λ κ²μ νμΈν μ μμλ€.
νμ§λ§ μ°λ¦¬κ° μ μ μμκ² μλλ° μ μ°λ¦¬λ μμ±μλ₯Ό μ¬μ©νλ κ²μΌκΉ?
μ°λ¦¬κ° μμ±μλ₯Ό μ¬μ©νλ λͺ©μ μ ν΄λΉ κ°μ²΄λ₯Ό μ΄κΈ°νν΄μ£Όλ κ²μ΄λ€.
κ·Έλ°λ° μμ μ½λμ²λΌ λ΄ κ°μ²΄κ° μλ λΆλͺ¨ν΄λμ€μ κ°μ²΄κΉμ§ μ΄κΈ°νλ₯Ό μ§νν΄μ£Όλ κ²μ μ½κ°μ μμ΄λ¬λν¨μ΄ μλ€λ κ²μ΄λ€.
λν μ§κΈμ λ°λ νλΌλ―Έν°κ° μ μ΄ ν¨κ» μ΄κΈ°νλ₯Ό ν΄ μ€μλ μμμ§ λͺ°λΌλ λ§μ½ λΆλͺ¨ν΄λμ€μ νλΌλ―Έν°μ κ°μκ° μμ²λ μμ΄λΌλ©΄ μμ ν΄λμ€μλ€κ° μ΄κΈ°νλ₯Ό νλ건 무리μ΄λ€.
κ·Έλ κΈ° λλ¬Έμ μ°λ¦¬λ μ΄λ₯Ό ν΄κ²°νκΈ° μν΄μ superλ₯Ό μ¬μ©ν΄ μ£Όλ κ²μ΄λ€.
superλ λΆλͺ¨κ°μ²΄μ μ°Έμ‘°κ°μ λνλ΄λ©° superμ νλΌλ―Έν°λ‘ λΆλͺ¨ν΄λμ€λ‘ λμ΄κ°μΌν κ°λ€μ λ겨주κ²λλ©΄ λΆλͺ¨ν΄λμ€λ νλΌλ―Έν°λ‘ λ°μ κ°μ μ΄κΈ°νν΄μ£Όλ©΄ λλ κ²μ΄λ€.
μ΄λ μ¬μ©ν λ μ£Όμν μ μ μμ±μμμ λ°λμ κ°μ₯λ¨Όμ μμ±ν΄ μ£Όμ΄μΌ νλ€.
μμλ₯Ό λ°κΏμ κ°μ²΄ κ°μ μ΄κΈ°ννν superλ₯Ό μμ±ν΄ μ€λ€λ©΄ μ€λ₯κ° λ°μλλ μ΄μ κΌ μ°Έκ³ νλλ‘ νλ€.
μμμ λ°λμ νμν κΉ?
μ½λλ₯Ό μμ±ν λ μμκ΅¬μ‘°κ° νμνμ§λ§ μμκ΅¬μ‘°λ‘ μ½λμμ±μ νΉλ³ν μ΄μ μ΄ μμ κ²½μ° λ°λμ μμμ λ§λ€μ΄μΌν κΉ?
μ λ΅μ μλλ€.
μμμ΄ κ°μ²΄μ§ν₯μΈμ΄μ νΉμ±μ€ νλλΌκ³ ν΄μ μμμ λ°λμ μ¬μ©ν΄μΌ νλ κ²μ μλλ€.
μ°λ¦¬κ° μμμ μ¬μ©νλ μ΄μ λ κΈ°μ‘΄ μ½λμλ λ€λ₯΄κ² μ΄μ μ΄ μκΈ° λλ¬Έμ μ¬μ©νλκ²μΌλ‘ μ΄μ μ΄ μλ€λ©΄ κ΅³μ΄ μ¬μ©ν νμκ° μλ€.
(= μ΄μ μ΄ μλ€λ건 μ½λμ 볡μ‘λκ° κ·Έλ κ² λμ§ μλ€λ λ§μ΄κΈ°λ νλ€)
λ¨, ν΄λμ€λ€κ°μ κ²ΉμΉλ λΆλΆμ΄ μ΄λμ λ λμ 보μΈλ€λ©΄ μ μ§λ³΄μλ₯Ό μν΄μλΌλ μ¬μ©ν΄ μ£Όλκ² μ΄ μ’λ€.
λμ μμμ μ¬μ©μ€μ λ²κ·Έκ° λ°μλμμ μμ μμλ ν΄λμ€λ€λΌλ¦¬ μλ¬μ€νλ λκ° λ°μλ μ μκΈ° λλ¬Έμ μ‘°μ¬ν΄μ μ μ¬μ©ν΄μΌ νλ€.
'μλ > κ΅λΉμ§μ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[D+20] νλ‘κ·Έλλ° μΈμ΄ νμ© (0) | 2022.10.20 |
---|---|
[D+19] μ€λ²λΌμ΄λ©κ³Ό μμκ΄κ³ (0) | 2022.10.19 |
[D+18] ν΄λμ€ κ΅μ¬μ 리 (0) | 2022.10.17 |
[D+17] Queue (0) | 2022.10.17 |
[D+17] μ½λ©λ°μ΄ (0) | 2022.10.14 |
λκΈ