hhnn_soph
[Java] μλ° κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ΄λ? λ³Έλ¬Έ
π κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°(OOP: Object Oriednted Programming)
- λΆνμ ν΄λΉνλ κ°μ²΄λ€μ λ¨Όμ λ§λ€κ³ κ° κ°μ²΄λ€μ νλμ© μ‘°λ¦½ν΄ μμ±λ νλ‘κ·Έλ¨μ λ§λλ κΈ°λ²
μ΄λ₯Ό λ μμΈν μκΈ° μν΄μ μλ°μμμ κ°μ²΄μ κ°μ²΄ κ°μ μνΈμμ©μ΄λ 무μμΈμ§ λ¨Όμ μμμΌ νλ€!
1. κ°μ²΄
- μμ μ μμ±μ κ°μ§κ³ μκ³ λ€λ₯Έ κ²κ³Ό μλ³ κ°λ₯ν λͺ¨λ κ²
(ex. 물리μ : μλμ°¨, μμ κ±°, μ± , μ¬λ λ± // μΆμμ : κ°μ, νκ³Ό, μ£Όλ¬Έ λ±)
- κ°μ²΄λ μμ±κ³Ό λμμΌλ‘ ꡬμ±
(ex. μμ±: μ΄λ¦, λμ΄, μμ, λͺ¨λΈλͺ // λμ: κ±·λ€, μλ€, λ¬λ¦°λ€, λ©μΆλ€)
- μλ°μμμ μμ±μ νλ(field), λμμ λ©μλ(method)λ‘ νν
2. κ°μ²΄μ μνΈμμ©
- κ° κ°μ²΄λ λ 립μ μ΄λ©° λ€λ₯Έ κ°μ²΄μ μλ‘ μνΈμμ©νλ©΄μ λμ
- μλ°μμμ κ°μ²΄μ μνΈμμ©μ΄λ κ°μ²΄ κ°μ λ©μλ νΈμΆμ μλ―Έ. λ§€κ°κ°κ³Ό 리ν΄κ°μ ν΅ν΄ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ
- λ©μλ(method): μλ°μμ κ°μ²΄λ€κ³Όμ μνΈμμ© μλ¨
- λ©μλ νΈμΆ
: κ°μ²΄κ° λ€λ₯Έ κ°μ²΄μ κΈ°λ₯μ μ΄μ©νλ κ²
: κ°μ²΄μ λνΈ μ°μ°μ( . )λ₯Ό λΆμ΄κ³ λ©μλ μ΄λ¦μ μμ±
<μ€λͺ
>
리ν΄κ° = κ°μ²΄.λ©μλλͺ
(λ§€κ°κ°1, λ§€κ°κ°2, ...);
<ex>
int result = Calculator.add(10, 20);
// 리ν΄κ°μ int λ³μμ μ μ₯
// 리ν΄κ°? λ©μλκ° μ€ννκ³ λμ νΈμΆν μͺ½μΌλ‘ λλ €μ£Όλ κ°
* λνΈμ°μ°μ: κ°μ²΄ μ κ·Ό μ°μ°μ. κ°μ²΄κ° κ°μ§κ³ μλ νλ/λ©μλλ₯Ό μ¬μ©νκ³ μ ν λ μ΄μ©
π κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° νΉμ§
1. μΊ‘μν(Encapsulation)
- κ°μ²΄μ νλμ λ©μλμ μ€μ ꡬν λ΄μ©μ κ°μΆ° 보νΈνλ κ²(μ 보μ μλ)
- μ΄μ : μΈλΆμ μλͺ»λ μ¬μ©μΌλ‘ κ°μ²΄κ° μμλμ§ μλλ‘
- μ κ·Ό μ νμλ₯Ό ν΅ν΄ κ°μ²΄μ νλμ λ©μλ μ¬μ©λ²μλ₯Ό μ ννμ¬ μΈλΆλ‘λΆν° 보νΈ
2. μμ(Inheritance)
- κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μμ μμ κ°μ²΄μ νμ κ°μ²΄κ° μμ
- μμ κ°μ²΄λ μμ μ΄ κ°μ§κ³ μλ νλμ λ©λμ€λ₯Ό νμ κ°μ²΄μκ² λ¬Όλ €μ£Όμ΄ μ¬μ©ν μ μλλ‘ ν¨
- μ΄μ : μ΄λ―Έ μ κ°λ°λ κ°μ²΄λ₯Ό μ¬μ¬μ©νμ¬ μλ‘μ΄ κ°μ²΄λ₯Ό λ§λ€κΈ° λλ¬Έμ μμ κ°μ²΄μ μμ μΌλ‘ λͺ¨λ νμ κ°μ²΄λ€μ μμ
ν¨κ³Όλ₯Ό κ°μ Έμ΄. μ΄λ λ°λ³΅λ μ½λ μ¬μ©λ μ€μ¬μ£ΌκΈ° λλ¬Έμ λ§€μ° ν¨μ¨μ
3. λ€νμ±(Polymorphism)
- κ°μ νμ μ΄μ§λ§ μ€ν κ²½κ³Όκ° λ€μν κ°μ²΄λ₯Ό μ΄μ©ν μ μλ μ±μ§
- νλμ νμ μ μ¬λ¬ κ°μ²΄λ₯Ό λμ ν¨μΌλ‘μ¨ λ€μν κΈ°λ₯μ μ΄μ©ν μ μλλ‘ ν¨
- μλ°λ λ€νμ±μ μν΄ λΆλͺ¨ ν΄λμ€ νΉμ μΈν°νμ΄μ€ νμ λ³νμ νμ©νλ©° μ΄λ‘ μΈν΄ κ°μ²΄μ λΆννκ° κ°λ₯
π κ°μ²΄μ ν΄λμ€
[ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° κ°λ°μ 3κ°μ§ λ¨κ³ ]
β ν΄λμ€ μ€κ³ β‘ μ€κ³λ ν΄λμ€λ‘ κ°μ²΄ μμ± β’ μμ±λ κ°μ²΄ μ¬μ©
1. ν΄λμ€ μ€κ³
- λ©λͺ¨λ¦¬μμ μ¬μ©νκ³ μΆμ κ°μ²΄κ° μλ€λ©΄ μ€κ³λλ₯Ό λ¨Όμ μμ±
- μλ°μμμ ν΄λμ€κ° λ°λ‘ μ€κ³λ
- ν΄λμ€ λ΄ κ°μ²΄λ₯Ό μμ±νκΈ° μν νλμ λ©μλ μ‘΄μ¬
2. ν΄λμ€λ‘ κ°μ²΄ μμ±
- μΈμ€ν΄μ€: ν΄λμ€λ‘λΆν° λ§λ€μ΄μ§ κ°μ²΄, λ©λͺ¨λ¦¬μ μκΈ°λ μ€μ²΄
- μΈμ€ν΄μ€ν: ν΄λμ€λ‘λΆν° κ°μ²΄λ₯Ό λ§λλ κ³Όμ . new μ°μ°μ μ¬μ©
- νλμ ν΄λμ€λ‘λΆν° μ¬λ¬ κ°μ μΈμ€ν΄μ€ μμ± κ°λ₯
3. κ°μ²΄ μ¬μ©
- new μ°μ°μλ₯Ό μ¬μ©ν΄ μμ±ν κ°μ²΄λ₯Ό ν΄λμ€ λ³μμ λ΄μ μ¬μ©
'Language > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] ν΄λμ€ κ΅¬μ± μμ(λ©μλ) (0) | 2021.09.13 |
---|---|
[Java] ν΄λμ€ κ΅¬μ± μμ(νλ λ° μμ±μ) (0) | 2021.09.13 |
[Java] μλ° ν΄λμ€ μ μΈ λ° κ°μ²΄ μμ± (0) | 2021.09.13 |