ν΄λμ€μ κ°μ²΄ κ΄κ³μ μ€ν΄μ λν΄μλ 'ν©ν°λ¦¬ λ©μλ ν¨ν΄' κΈμ μ 리νμ¬ μ λ‘λ νμμ΅λλ€.
ν΄λμ€μ κ°μ²΄μ κ΄κ³λ λΆμ΄λΉ΅νκ³Ό λΆμ΄λΉ΅μ΄ λ§λμ λν μ£Όμ
https://developyanggaeng.tistory.com/189
[μ€νλ§ μ λ¬Έμ μν μλ° κ°μ²΄ μ§ν₯μ μ리μ μ΄ν΄] (1) ν©ν°λ¦¬ λ©μλ ν¨ν΄ + ν΄λμ€μ κ°μ²΄μ
μλ‘ μΌμ μ ν λΈλ‘κ·Έ κΈμ μ°Έκ³ νμ¬ ν©ν°λ¦¬ λ©μλ ν¨ν΄ κΈμ μ¬λ Έμλλ°.. μ¬μ€ λΉμμ λ΄κ° μ΄ν΄νκΈ°μλ κΈμ΄ μ΄λ €μμ ν΄λΉ ν¨ν΄μ λν νλ¦μ μ΄ν΄νκΈ° μ΄λ €μ λ€. https://developyanggaeng.tist
developyanggaeng.tistory.com
κ·Όλ° μ λ κ² νΌμ©ν΄μ κΈμ μμ±νλ λμ€μ μ°Ύμλ³Ό λ λΆνΈν κ² κ°μμ
μ΄λ² ν¬μ€ν λΆν°λ μ£Όμ λ₯Ό νλλ§ μ νκ³ , κ·Έμ λν΄ μμΈν μ 리ν΄λ³΄κ³ μ ν©λλ€.
μΆμνλ λͺ¨λΈλ§
그리νμ¬ μ²«λ²μ§Έ μ£Όμ λ κ°μ²΄μ§ν₯ 4λ νΉμ± μ€ νλμΈ μΆμν! μ λλ€.
(μ°Έκ³ λ‘ κ°μ²΄μ§ν₯ 4λ νΉμ±μ λ€λ€ μλ€μνΌ μΊ‘μν, μμ, μΆμν, λ€νμ±μ΄λ€.)
μΆμν?
μΆμν! λ§λ§ λ€μ΄μλ νΌμΉ΄μμ μΆμνλ§ λ μ€λ¦ λλ€.(μ λ§ κ·Έλ΄μ§λ
μ§νΌμ§κΈ°λ©΄ λ°±μ λ°±μΉμ΄λΌλ λ§μ΄ μλ―μ΄ κ°λ μ μκ³ μ ν λλ κ·Έ λ¨μ΄μ μ¬μ μ μλ―ΈλΆν° μ°Ύμ보λ κ²μ΄ μ’μ΅λλ€.
- λͺ μ¬ μ¬λ¦¬ μ¬λ¬ κ°μ§ μ¬λ¬Όμ΄λ κ°λ μμ 곡ν΅λλ νΉμ±μ΄λ μμ± λ°μλ₯Ό μΆμΆνμ¬ νμ νλ μμ©.
μΆμ²: λ€μ΄λ² κ΅μ΄μ¬μ
μΆμμ μ¬μ μ μλ―Έ μ€ λμ λλ κ΅¬λ¬Έμ΄ μλλ°μ.
"곡ν΅λλ νΉμ± / 곡ν΅λλ μμ± μΆμΆ"
μ μ¬μ μ μλ―Έμ²λΌ κ°μ²΄μ§ν₯μμμ 'μΆμν'λ
ꡬ체μ μΈ κ²μ λΆν΄ν΄μ κ΄μ°°μκ° κ΄μ¬ μλ νΉμ±λ§ κ°μ§κ³ μ¬μ‘°ν© νλ κ² μ΄λΌκ³ λ³Ό μ μμ΅λλ€.
κ·ΈλΌ κ΄μ°°μκ° κ΄μ¬ μλ νΉμ±λ§ κ°μ§κ³ μ¬μ‘°ν© νλ κ²μ μ΄λ€ κ²μ μλ―Ένλ κ±ΈκΉμ?
κ°μ²΄μ ν΄λμ€
μ°λ¦¬κ° μ§λ μκ°μ κ°μ²΄μ ν΄λμ€μ μ°¨μ΄λ₯Ό ꡬλΆνλ λ²μ μμ보μμμ£ .
볡μ΅ν κ²Έ μλ μ§λ¬Έμ λλ΅νλ μκ°μ κ°μ Έλ³΄μμ£ .
- μ¬λμ κ°μ²΄μΌκΉμ ν΄λμ€μΌκΉμ?
- κΉμ°μλ κ°μ²΄μΌκΉμ ν΄λμ€μΌκΉμ?
- κ°μμ§λ κ°μ²΄μΌκΉμ ν΄λμ€μΌκΉμ?
μ λ΅μ μ¬λμ ν΄λμ€, κΉμ°μλ κ°μ²΄, κ°μμ§λ ν΄λμ€ μ λλ€.
λμΆ© λμ κ΄κ³λ₯Ό ν΅ν΄ ν΄λμ€μ κ°μ²΄μ λν΄μ νμ μ νκ² λλ° λν΅ [κ°μ²΄] μ΄ λ μμ μ νν μ μκ° λμ§ λͺ¨νΈν©λλ€.
μ¬μ€ κ°μ²΄λ₯Ό λ»νλ objectλ μ¬μ μ μλ―Έλ‘ '물건, 물체'λ₯Ό λ»νκΈ° λλ¬Έμ [κ°μ²΄] 보λ€λ [κ°μ²΄]κ° λ§μ΅λλ€.
κ·Έλ λ€κ³ ν΄μ κ°μ²΄μ§ν₯μΌλ‘ μΈ μ μμΌλ κ°μ²΄μ§ν₯μμμ [κ°μ²΄]μ [ν΄λμ€]μ λν΄ ν μ€λ‘ μ μλ₯Ό λ΄λ €μΌκ² μ΅λλ€.
κ°μ²΄ : μΈμμ μ‘΄μ¬νλ μ μΌλ¬΄μ΄ν μ¬λ¬Ό
ν΄λμ€ : λΆλ₯, μ§ν© κ°μ μμ±κ³Ό κΈ°λ₯μ κ°μ§ κ°μ²΄λ₯Ό μ΄μΉνλ κ°λ
μ΄κ±Έ μλ° μΈμ΄λ‘ νννλ©΄ μ΄λ»κ² λ κΉμ?
μ¬λ νκΈΈλ = new μ¬λ();
μΈκ°μ μΈμ΄λ‘ ν΄μν΄λ³ΌκΉμ?
π μ¬λμ΄ νλͺ νμ΄λ¬λλ° μ΄λ¦μ νκΈΈλμ΄λΌκ³ νμ.
μ΄λ₯Ό νλ‘κ·Έλλ° μΈμ΄λ‘ ν΄μνλ©΄
π μ¬λμ΄λΌλ ν΄λμ€λ₯Ό μ΄μ©ν΄ μ μΌλ¬΄μ΄νκ³ μλ‘μ΄ νλμ μ¬λ(κ°μ²΄)μ λ§λ€μ΄ νκΈΈλ(κ°μ²΄ μ°Έμ‘° λ³μ)μ΄λΌλ μ΄λ¦μ μ§μ΄μ€¬λ€.
μ 리νλ©΄ classλ₯Ό μ΄μ©ν΄ objectλ₯Ό μμ±ν κ² μ λλ€.
νμ§λ§ κ°μ²΄μ§ν₯μμλ κ°μ²΄λ₯Ό μμ±νμ¬ heap λ©λͺ¨λ¦¬μ μ¬λΌκ°μ λλ objectλΌλ νν 보λ€λ ν΄λμ€μ μΈμ€ν΄μ€(instance)λΌλ ννμ μλλ€.
μΆμνμ λν΄ λ§νλ€λ©΄μ μ κ³μ λ΄ κΈΈλ‘ μλκ³ μκ°νμ€ κ² κ°μ΅λλ€. π€
κ·Έ μ΄μ λ! μ°λ¦¬κ° κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ ν λ ν΄λμ€λ₯Ό λ¨Όμ μ€κ³νκ² λκΈ° λλ¬Έμ λλ€.

ν΄λμ€ μ€κ³
μ°λ¦¬κ° μ¬λμ΄λΌλ ν΄λμ€λ₯Ό μ€κ³νλ€κ³ μκ°ν΄λ³΄μ£ .
μ¬λ ν΄λμ€λ₯Ό λ§λ€κΈ° μν΄μλ λ¨Όμ μ¬λ κ°μ²΄λ€μ΄ κ°λ 곡ν΅λ νΉμ±μ΄ λμ§ μμμΌ ν©λλ€.
λμΆ© μκ°ν΄λ΄λ μ¬λμ΄ κ°λ μμ±κ³Ό κΈ°λ₯μ κ΅μ₯ν λ§λ€μ.
- μμ± : ν€, λͺΈλ¬΄κ², λμ΄, μ±λ³, μ§μ
, μλ ₯, ....
β μμ±μ λͺ μ¬λ‘ ννλλ©° κ°μ κ°μ§ μ μμ΅λλ€. - κΈ°λ₯ : λ¨Ήλ€, μλ€, μΌνλ€, κ±·λ€, λμμλ€, μ΄μ²΄νλ€, μΆκΈνλ€, μ΄λνλ€, ...
β κΈ°λ₯μ λμ¬λ‘ ννλλ©°, κ°μ²΄μ§ν₯μμλ λ©μλλΌκ³ ννν©λλ€.
μ κ° λμ΄ν κ² μ΄μΈμλ 무μν λ§μ μμ±κ³Ό κΈ°λ₯μ κ°μ§κ³ μμ΅λλ€.
κ·Έλ¬λ.. μ΄ λͺ¨λ κ²μ ν΄λμ€μ μμ±νλ κ²μ΄ λ§μκΉμ?
μκ°λ§ν΄λ κ°μ΄μ΄ λ΅λ΅ν΄μ Έ μ΅λλ€.
νμ μ°λ¦¬λ μ¬μ€νλ₯Ό 그리λ κ²μ΄ μλλΌ μΆμνλ₯Ό κ·Έλ¦¬κ³ μλ€λ μ μ μμΌλ©΄ μλ©λλ€.
μ°λ¦¬λ νλ‘κ·Έλ¨(μ ν리μΌμ΄μ )μ μ°½μ‘°μ£Όλ‘μ¨ ν΄λμ€λ₯Ό μ€κ³νκΈ° μ μκ°ν΄λ΄μΌ ν κ²μ΄ μμ΅λλ€.
"λ΄κ° λ§λ€κ³ μ νλ νλ‘κ·Έλ¨(μ ν리μΌμ΄μ )μ μ΄λμμ μ¬μ©λλκ°?"
λ§μ½ λ³μμμ μ¬μ©νκ² λλ€λ©΄ μμ± μ€ μ§μ μ νμμμ΅λλ€.
μνμμ μ¬μ©νκ² λλ€λ©΄ ν€, λͺΈλ¬΄κ², μ±λ³, μλ ₯μ κ΅³μ΄ νμμκ² λ©λλ€.
μ΄λ₯Ό μ 리νλ©΄
μΆμνλ ꡬ체μ μΈ κ²μ λΆν΄ν΄μ μ ν리μΌμ΄μ κ²½κ³μ μλ νΉμ±λ§ κ°μ§κ³ μ¬μ‘°ν© νλ κ²
= λͺ¨λΈλ§
λλμ΄ μ΄ κΈμ μ£Όμ μΈ μΆμνλ λͺ¨λΈλ§μ΄λ€μ λν΄ μ΄ν΄κ° λμμ΅λλ€.
λͺ¨λΈλ§
λͺ¨λΈλ§μ μ’ μ½κ² μ€λͺ νκΈ° μν΄ μ§νμ² λ Έμ λλ₯Ό μκ°ν΄λ³΄μ£ !
μ§νμ² λ Έμ λλ₯Ό 보면 κ° μμ μ§νμ νΉμ±κ³Ό 거리λ₯Ό λ± λ§μΆ°μ κ·Έλ €λμμκΉμ?
μ κΉ μκ°ν΄λ³΄λ©΄ λ°λ‘ μλλΌλ κ²μ μ μ μμ΅λλ€.
μ΄μ²λΌ λͺ¨λΈμ μΆμνλ₯Ό ν΅ν΄ μ€μ μ¬λ¬Όμ λ¨μνκ² λ¬μ¬νλ κ²μ μλ―Έν©λλ€.
μ΄λ° λͺ¨λΈλ§μ κ°μ²΄μ§ν₯μμ ν΄λμ€λ₯Ό μ€κ³ν λ, λ°μ΄ν°λ² μ΄μ€μ ν μ΄λΈμ μ€κ³ν λ νμν κΈ°λ²μ΄κΈ°λ ν©λλ€.
μ΄λ¬ν μΆμνλ μλ°μμ classλ‘ νννκ³ μμ΅λλ€.
μΆμν == λͺ¨λΈλ§ == μλ°μ class ν€μλ
code
μ΄λ¬ν ν΄λμ€μ κ°μ²΄μ κ΄κ³λ₯Ό μλ° μΈμ΄λ‘ λνλ΄λ³ΌκΉμ?
ν΄λμ€ κ°μ²΄μ°Έμ‘°λ³μ = new ν΄λμ€();
// μλ‘μ΄ κ°μ²΄λ₯Ό νλ μμ±ν΄ κ·Έ κ°μ²΄μ μ£Όμκ°μ κ°μ²΄ μ°Έμ‘° λ³μμ ν λΉνλ€.
λ§μ΄ μ΅μν ννμ΄μ£ ! λ¨Όμ νλνλ λΆν΄ν΄μ μμ보λλ‘ ν©μλ€.
- ν΄λμ€ : κ°μ²΄μ°Έμ‘°λ³μμ μλ£ν(Type)
- κ°μ²΄μ°Έμ‘°λ³μ : μμ±λ κ°μ²΄μ μ£Όμκ°μ λ΄μ 곡κ°
- = : ν λΉλ¬Έ
- new : μλ‘μ΄
- ν΄λμ€ : λ§λ€κ³ μ νλ κ°μ²΄μ λΆλ₯, ν΄λμ€μ μΈμ€ν΄μ€(κ°μ²΄λ₯Ό μμ±νκΈ° μν΄ κ°μ²΄ μμ±μλ₯Ό νΈμΆ)
- () : λ©μλ
π‘μΆν μμ ννΈμμ λ€λ£¨κ² μ§λ§ κ°μ²΄μ°Έμ‘°λ³μμ μλ£νμ μμν΄λμ€λ₯Ό μ¨λ 무방ν©λλ€.
μ 리
μ΄μ κΉμ§ μ΄ν΄λ₯Ό λκΈ° μν΄ νκ΅λ§λ‘ μ¨μ μλΏμ§κ° μμλλ°μ.
μ’ λ μ€μ μμ μ°μ΄λ ꡬ문μ ν΅ν΄ μ 리νκ³ λλ΄κ² μ΅λλ€.
public class Mouse {
public String name;
public int age;
public int countOfTail;
public void sing() {
System.out.println(name + "κ° λ
Έλλ₯Ό λΆλ¦
λλ€.");
}
}
public class Main {
public static void main(String[] args) {
Mouse mickey = new Mouse();
mickey.name = "λ―Έν€";
mickey.sing();
}
}
λ―Έν€κ° λ
Έλλ₯Ό λΆλ¦
λλ€.
β‘οΈ Mouse mickey = new Mouse();
β‘οΈ ν λ§λ¦¬ μ₯κ° νμ΄λ¬μΌλ(== new Mouse()) κ·Έ μ΄λ¦μ mickeyλΌκ³ μ§μλ€.
Mouse : ν΄λμ€
ν λ§λ¦¬ μ₯ : ν΄λμ€μ μΈμ€ν΄μ€ = κ°μ²΄
mickey : κ°μ²΄ μ°Έμ‘° λ³μ
λ€μ μκ°μλ static ν€μλμ λν΄ μμ보λλ‘ νκ² μ΅λλ€!!
κ°μ¬ν©λλ€.
'π Study > OOP' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| OOP(3) μμ: μ¬μ¬μ©κ³Ό νμ₯ + LSP, ISP (0) | 2023.02.22 |
|---|---|
| OOP(2) static vs instance (0) | 2023.02.22 |