μμ κ°μ²΄μ§ν₯?
μμ κ°μ²΄μ§ν₯μ΄λΌλ κ²μ νλ‘κ·Έλλ° μΈμ΄μμ λͺ¨λ κ²λ€μ΄ κ°μ²΄λ‘ ννλ μ μμ΄μΌ νλ©° κ°μ²΄μ§ν₯μ μμΉμ μ격ν μ§ν€λ κ²μ΄λ€. κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ μ½λλ₯Ό κ°μ²΄μ μ§ν©μΌλ‘ ꡬμ±νκ³ , κ°μ²΄λ€ κ°μ λ©μμ§λ₯Ό μ£Όκ³ λ°μ νλ ₯νλλ‘ μ€κ³νλ μ κ·Ό λ°©μμ΄λ€.
μ¬κΈ°μ κ°μ²΄μ§ν₯ μμΉμ λ€μκ³Ό κ°λ€.
μΊ‘μν(Encapsulation): κ΄λ ¨λ λ°μ΄ν°μ λμμ κ°μ²΄ λ΄λΆμ ν¨κ» λ¬Άμ΄ μ¨κΈ°κ³ , μΈλΆμμλ κ°μ²΄μ 곡κ°λ μΈν°νμ΄μ€λ₯Ό ν΅ν΄μλ§ μ κ·Όν μ μλλ‘ νλ€.
μμ(Inheritance): μ΄λ―Έ μ μλ ν΄λμ€λ₯Ό κΈ°λ°μΌλ‘ μλ‘μ΄ ν΄λμ€λ₯Ό μμ±νκ³ , κΈ°μ‘΄ ν΄λμ€μ νΉμ±κ³Ό λμμ μμλ°μ μ¬μ¬μ©ν μ μλ€.
λ€νμ±(Polymorphism): λμΌν μ΄λ¦μ λ©μλλ μ°μ°μκ° λ€λ₯Έ κ°μ²΄μ λ°λΌ λ€λ₯Έ λμμ μνν μ μλ λ₯λ ₯μ΄λ€.
μΆμν(Abstraction): 볡μ‘ν μμ€ν
μμ ν΅μ¬μ μΈ κ°λ
μ΄λ κΈ°λ₯μ μ§μ€νκ³ , λΆνμν μΈλΆμ¬νμ μ¨κΈ°λ κ°λ
μ΄λ€.
μ°λ¦¬κ° κ°μ²΄μ§ν₯μ λν΄ μ²μ 곡λΆνμ λ, νν λ§νλ κ°μ²΄μ§ν₯μ 4μμμ΄λ€.
μ¦, λͺ¨λ νμ μ΄ κ°μ²΄μ¬μΌ νλ©° μ κ°μ²΄μ§ν₯μ 4μμλ₯Ό μ² μ νκ² μ§ν€λ μΈμ΄κ° μμ κ°μ μ§ν₯ μΈμ΄λ€.
μμ κ°μ²΄μ§ν₯μ μμ μμΉλ€μ κ°λ₯ν ν μ격νκ² λ°λ₯΄λ κ²μ μλ―Ένλ€. μλ₯Ό λ€μ΄, κ°μ²΄μ§ν₯ μΈμ΄μΈ Javaμμλ μμ κ°μ²΄μ§ν₯μ μ§ν₯νκΈ° μν΄ "λͺ¨λ κ²μ κ°μ²΄"λΌλ μμΉμ κ°μ§κ³ μλ€. Javaμμλ κΈ°λ³Έ λ°μ΄ν° νμ
λ€λ κ°μ²΄λ‘ μ·¨κΈνμ¬ κ°μ²΄μ§ν₯μ μμΉμ λ³΄λ€ μΌκ΄λκ² μ μ©νκ³ μ νλ€. μ΄λ¬ν λ©΄μμ λ΄€μ λ Javaλ μμ κ°μ²΄μ§ν₯ μΈμ΄κ° νμ€ν λ§λ€.
μμ κ°μ²΄μ§ν₯μ κ°μ²΄μ§ν₯μ μ₯μ μ κ·Ήλννκ³ μ½λμ μ¬μ¬μ©μ±, μ μ§λ³΄μμ±, νμ₯μ± λ±μ ν₯μμν€κΈ° μν΄ μ¬μ©λ μ μλ€.
κ·Έλ λ€λ©΄ νμ΄μ¬μ?
νμ΄μ¬μ λν΄μ μμ κ°μ²΄μ§ν₯μ΄λ μλλμ λν΄ μκ²¬μ΄ μκ°λ¦°λ€. μ΄λ€ μ΄λ€μ λͺ¨λ κ²λ€μ΄ κ°μ²΄λ‘ λμ΄ μμΌλ μμ κ°μ²΄μ§ν₯ μΈμ΄λ€ λΌκ³ λ§νλ©° μ΄λ€ μ΄λ€μ λͺλͺ μμ(Primative) νμ μ λν΄μλ κ°μ²΄λΌκ³ λ³Ό μ μλ€ λΌκ³ λ§νλ€.
ν΅μ©λλ μ견μ "κ±°μ μμ κ°μ²΄μ§ν₯ μΈμ΄" λΌλ κ²μ΄λ€. κ±°μ λΌλ λ¨μ΄κ° λΆμκΈ° λλ¬Έμ 100% μμ κ°μ²΄μ§ν₯ μΈμ΄λ μλμ§λ§ μμ κ°μ²΄μ§ν₯ μΈμ΄λΌκ³ λ΄λ 무방ν κ²μ΄λ€. λλ κ°μΈμ μΌλ‘ νμ΄μ¬μ μμ κ°μ²΄μ§ν₯μ΄λΌκ³ λ³Έλ€.
μ°μ νμ΄μ¬μμ μ¬μ©μ μ μ ν΄λμ€ λ§κ³ κΈ°λ³Έμ μΌλ‘ μ μλ μ μ, μ€μλ₯Ό λΉλ‘―ν΄ λ¬Έμμ΄, 리μ€νΈ, λμ λ리λ 미리 μ μλ ν΄λμ€μ΄λ€. νμ΄μ¬μ typeν¨μλ₯Ό ν΅ν΄ μμνμ μ΄λΌκ³ μκ°λλ νμ μ μΈμλ‘ λ£μΌλ©΄ class λΌλ μλ©μ΄ λ±μ₯νλ€.
νμ΄μ¬μ μλ²½ν μμ κ°μ²΄μ§ν₯ μΈμ΄λ μλλΌκ³ μ£Όμ₯νλ μ견μλ μ μ°¨μ§ν₯μ μΈ μμλ μΈμ΄ ν¨λ¬λ€μμ ν¬ν¨λμλ€κ³ μ΄μΌκΈ° νλ€. λν μΌλΆ μμ νμ μ ν΄λμ€κ° μλλΌκ³ νλ€. κ·Έκ² λμ§λ μ°Ύμλ΄λ μ μ μκΈ° λλ¬Έμ μ΄κ±΄.... 무μνλ κ² μ’μ κ² κ°λ€. νΉμ μμ νμ μ ν΄λμ€μ§λ§ μ€μ ν΄λμ€ μ²λΌ λμνμ§ μκΈ° λλ¬Έμ κ»λ°κΈ°λ§ ν΄λμ€λΌκ³ ν μλ μλ€.
μ μ°¨μ§ν₯μ μμλ μλ°λ§νΌ λͺ¨λ λμμ΄ ν΄λμ€μμ μ΄λ£¨μ΄μ§μ§ μλ μ μμ κ·Έλ κ² λ§ν κ² κ°λ€. μ¬μ€ λλ μ΄ λΆλΆμ λν΄μλ νμ΄μ¬μ μ²μ μ νμ λ λμνμΌλ μ§κΈμ μκ°μ΄ μ‘°κΈ λ°λμλ€.
λ§λ¬΄λ¦¬νμλ©΄, νμ΄μ¬μ μ격ν μμ κ°μ²΄μ§ν₯μ κΈ°μ€μ λͺ¨λ λ§μ‘±ν μ μ΄λΌκ³ λ΄λ 무방νλ€. λ°λΌμ κ²°λ‘ μ νμ΄μ¬μ μμ κ°μ²΄μ§ν₯ μΈμ΄μ΄λ€.
λ§μ½ λμνλ μ견 νΉμ λ€λ₯Έ μκ²¬μ΄ μλ€λ©΄ μ£Όμ μμ΄ λκΈ λ¬μμ£Όμλ©΄ μ°Έκ³ νκ² λ€. λκ° λλ νμ΄μ¬μ μμ°μ±μ΄ λ°μ΄λκ³ μ μ°ν ꡬ쑰λ₯Ό κ°κ³ μκΈ° λλ¬Έμ νλ‘μ νΈμμ νμ΄μ¬μ μΈ λ κΈ°λΆμ΄ μ’λ€.
'νλ‘κ·Έλλ° μΈμ΄ > Python' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
νμ΄μ¬ ννμ λͺ¨λ κ² (0) | 2023.12.03 |
---|---|
νμ΄μ¬ 리μ€νΈ(list)μ λͺ¨λ κ² (1) | 2023.12.02 |
νμ΄μ¬ λ¬Έμμ΄(string)μ λͺ¨λ κ² (1) | 2023.12.01 |
ν¨ν€μ§μ __init__νμΌ (1) | 2023.05.31 |
νμ΄μ¬μμ json νμ±νκΈ° (0) | 2023.05.18 |
λκΈ