ν΄λμ€
λ κΈ°λ³Έλ¨μ,
κ°μ²΄λ₯Ό μμ±νκΈ° μν μ€κ³λ(ν)
- κ°μ²΄λ₯Ό λ§λ€κΈ° μν ν, ν νλ¦Ώ, μ€κ³λ
- κ°μ²΄ μμ±μ μν μ 보λ€μ
(μ΄λ€ μμ±κ³Ό νμλ€μ ν¬ν¨ν κ²μΈμ§μ μ 보λ₯Ό ν¬ν¨)
β« μΆμν(Abstraction)
- λ°λμ νμν κ²λ€μ μ ννκ³ , λΆνμν κ²λ€μ λ²λ¦¬λ κ³Όμ
- μΆμνμ κ³Όμ μμ²΄κ° νλμ ν΄λμ€λ₯Ό μ€κ³νλ κ³Όμ μ΄λ€.
→ μ¦, νΉμ κ°μ²΄μ λ°λμ νμν μμ±κ³Ό νμλ₯Ό μ μνλ κ³Όμ μ
ν΄λμ€ μ μΈ
* λ³μλ λ©€λ² λ³μ, μΈμ€ν΄μ€ λ³μλΌκ³ λΆλ₯΄κ³ , λ©μλλ λ©μλ, μΈμ€ν΄μ€ λ©μλλΌκ³ λΆλ₯Έλ€.
- class ν€μλλ₯Ό μ¬μ©νκ³ , λ΄λΆμλ λ³μλ€κ³Ό λ©μλλ€μ΄ μ‘΄μ¬νλ€. (=ν΄λμ€μ λ©€λ² λΌκ³ λ ν¨)
- ν΄λμ€ μ΄λ¦μ λλ¬Έμλ‘ μμνλ©° μμ±λλ κ°μ²΄λ₯Ό κ°μ₯ μ νννλ λͺ μ¬ ννμ μλ―Έμλ μ΄λ¦μΌλ‘ μλͺ νλ€.
κ°μ²΄ μμ±νκΈ°
β« new ν€μλλ‘ κ°μ²΄λ₯Ό μμ±νλ€.
ν΄λμ€λͺ λ³μλͺ = new ν΄λμ€λͺ ( );
→ ν΄λμ€λ‘λΆν° κ°μ²΄λ₯Ό μμ±νκ³ κ·Έ κ°μ²΄μ λν μ°Έμ‘° μ 보λ₯Ό λ³μμ μ μ₯νλ μν μ νλ€.
κ°μ²΄μ λ©€λ² λ³μμ μ κ·ΌνκΈ°
β« μ μ°μ°μ(dot operator)λ‘ κ°μ²΄μ λ©€λ²μ μ κ·Όμ΄ κ°λ₯νλ€.
κ°μ²΄μ°Έμ‘°λ³μλͺ .λ©€λ²λ³μλͺ
→ λ©€λ² λ³μμ μ κ·Όμ ν΅ν΄μ κ°μ²΄μ λ©€λ² λ³μμ μλ‘μ΄ κ°μ μ μ₯νκ±°λ, μ μ₯λμ΄ μλ κ°μ μ¬μ©ν μ μλ€.
λ©μλ
(Method)
νΉμ μμ μ μν μ½λλ€μ μ§ν©
* λ©μλ vs ν¨μ
β« λ©μλ
: νΉμ κ°μ²΄ λ΄λΆμμ μ‘΄μ¬νκ³ , κ°μ²΄μ λ©€λ² λ³μμ λν μ°μ°μ΄ κ°λ₯νλ€.
β« ν¨μ
: λ 립μ μΌλ‘ μ‘΄μ¬νλ©°, νΉμ μμ μ νμν ν¨μλ₯Ό λͺ¨λ μ 곡ν΄μΌ νλ€.
Method λ¬Έλ²
- Inputκ³Ό Outputμ΄ μ‘΄μ¬νλ€.
(Outputμ μκ±°λ λ¦¬ν΄ κ°μΌλ‘ νμ, λ¦¬ν΄ νμ μ 리ν΄λλ κ°μ μλ£ν (* μμ κ²½μ° void))
- λ©μλ μ΄λ¦μ 첫 λ¨μ΄λ μλ¬Έμλ‘ μμνλ©° λ©μλμ νλμ λͺ ννκ² νννλ λμ¬λ‘ μλͺ νλ€.
- λ³λμ λ°μ΄ν°(μΈμ)λ₯Ό μ λ¬νμ§ μμλ κ°μ²΄μ λ©€λ² λ³μμ λν μ°μ°μ΄ κ°λ₯νλ€.
- νλΌλ―Έν°λ λ©μλμ input λ°μ΄ν°λ‘, λ©μλ μ΄λ¦ λ€μ μμΉνλ©° μκ΄νΈ λ΄λΆμ 'μλ£ν λ³μλͺ ' μμΌλ‘ νννλ€. (μ¦, νλΌλ―Έν°λ 맀κ°λ³μμ΄λ―λ‘ input λ°μ΄ν°κ° μ λ¬ λμ λ λ°μ΄ν°λ₯Ό μ μ₯νλ λ³μμ)
β« ν κ°μ²΄μ private λ©€λ² λ³μ emailμ κ°μ μ μ₯νλ λ©μλλ₯Ό μΆκ°νλ μμμ΄λ€.
μ΄ μμλ νλΌλ―Έν°λ‘ λ°μ λ³μλ₯Ό this.emailμ μ μ₯νλ€.
β« κ·ΈλΌ μ¬κΈ°μ thisλ 무μμΌκΉ?
: κ°μ²΄ λ΄λΆμμμ thisλ ν΄λΉ κ°μ²΄ μμ μ μλ―Ένλ€. (νμ¬ μμ±λμ΄μλ λ΄ μμ )
(* λ³μμ μ΄λ¦μ΄ μ€λ³΅λμ§ μλ κ²½μ° thisλ‘ λͺ μνμ§ μμλ λ¨)
β« μΈμ(argument) vs νλΌλ―Έν°(맀κ°λ³μ)
- μΈμ: λ©μλμ μ λ¬νλ λ°μ΄ν°(κ°)
- νλΌλ―Έν°: μ λ¬λ°λ μΈμ κ°μ μ μ₯νλ λ³μ
Setter Method
: λ©€λ² λ³μμ κ°μ μ μ₯(λ³κ²½)νλ λ©μλ
β« κ°μ²΄μ λͺ¨λ private λ©€λ² λ³μμ κ°μ μ μ₯νλ λ©μλλ₯Ό μΆκ°νλ€
β« λ³΄ν΅ 1κ°μ λ©€λ² λ³μμ κ°μ μΈν νλ λ©μλλ setμ΄λΌλ λμ¬λ‘ μμνλ€
→ μ΄λ₯Ό setter λλ setter method λΌκ³ νλ€
Getter method
: λ©€λ² λ³μμ κ°μ λ°ννλ λ©μλ
β« κ°μ²΄μ λͺ¨λ private λ©€λ² λ³μμ κ°μ λ°ννλ λ©μλλ₯Ό μΆκ°νλ€
β« λ³΄ν΅ 1κ°μ λ©€λ² λ³μμ κ°μ λ°ννλ λ©μλλ getμ΄λΌλ λμ¬λ‘ μμνλ€
→ μ΄λ₯Ό getter λλ getter methodλΌκ³ μ§μΉνλ€.
IntelliJμμ μ½κ² λ©€λ²λ³μμ λν setterμ getterλ₯Ό μμ±νλ λ°©λ²!
β« μλ¨μ Codeμμ Generateλ₯Ό μ ννλ€
β« Getter, Setter, Getter and Setter μ€ νλλ₯Ό μ ννλ€.
β« Getter, Setterλ₯Ό λ§λ€κ³ μΆμ λ©€λ²λ³μλ₯Ό μ νν ν OKλ₯Ό ν΄λ¦νλ€.
β« λ©€λ²λ³μμ λν getterκ° νλ²μ μμ±λμμμ νμΈν μ μλ€.
* μΊ‘μνμ 2κ°μ§ μλ―Έ
- κ°μ²΄μ μμ±κ³Ό νλμ νλμ λ¨μλ‘ κ·Έλ£Ήννλ€.
- κ°μ²΄μ μμ±κ³Ό νλμ μλνλ€.
(λ°λμ νμν μμ± λ° νλλ§ μΈλΆμ λ ΈμΆνλ€, λλΆλΆμ μμ± λ° νλμ μΈλΆμμ μ κ·Όνμ§ λͺ»νλλ‘ λ§λλ€)
* κ°μ²΄μ μ 보μλ(Information Hiding)μ΄ νμν μ΄μ
- κ°μ²΄ λ΄λΆμλ μΈλΆμμ μ κ·Όν΄μ λ³κ²½νλ©΄ μλλ μμ±μ΄ μ‘΄μ¬νλ€
- λ°λμ νμν λ©€λ²λ§ μΈλΆμ λ ΈμΆνμ¬ κ²°ν©λλ₯Ό μ€μΌ μ μλ€
* κ°μ²΄μ μ 보μλ λ°©λ²
- μ κ·Ό μ μ΄μ(Access Modifier)λ₯Ό νμ©νμ¬ λ©€λ²μ μ κ·Όμ μ μ΄νλ€.
(* μ κ·Ό μ μ΄μλ₯Ό defaultλ‘ λμ§ λ§κ³ λ°λμ μ μ νκ² λͺ μν΄μΌ ν¨)
μμ±μ
(Constructor)
κ°μ²΄κ° μμ±λλ μμ μ νΈμΆλλ νΉλ³ν ννμ λ©μλ
· μμ±μ μ΄λ¦μ ν΄λμ€μ μ΄λ¦κ³Ό λμΌνλ€.
· μ κ·Ό μ μ΄μλ λ³΄ν΅ publicμ μ¬μ©νλ€.
· 0κ° λλ 1κ° μ΄μμ νλΌλ―Έν° μ μΈμ΄ κ°λ₯νλ©°, 리ν΄νμ μ μλ΅λλ€.
→ κ°μ²΄κ° μμ±λλ μμ μ μ΄κΈ°νλ₯Ό νκΈ° μν΄ μ¬μ© λλ€. (μ£Όλ‘ κ°μ²΄ λ©€λ² λ³μμ μ΄κΈ°ν μμ μ ν¨)
* Default μμ±μλ λͺ μμ μΌλ‘ ꡬν λ μμ±μκ° μμ κ²½μ°μλ§ μ 곡λλ€.
λ°λΌμ, μμ±μλ₯Ό ꡬν ν κ²½μ° Default μμ±μλ₯Ό μ¬μ©ν μ μλ€.
λ©μλ μ€λ²λ‘λ©(Method Overloading)
: μλ‘ λ€λ₯Έ μ‘°ν©μ νλΌλ―Έν°λ₯Ό μ¬μ©νλ λμΌν μ΄λ¦μ λ©μλλ₯Ό ν ν΄λμ€ λ΄λΆμμ μ¬μ© νλ κ²
- νΉμ ν΄λμ€ μμμ νλΌλ―Έν°κ° λ€λ₯Έ λμΌν μ΄λ¦μ λ©μλλ₯Ό μ μΈν μ μλ€
- νλΌλ―Έν°μ μλ£ν λλ κ°μκ° λ€λ₯΄λ©΄ λμΌν μ΄λ¦μ΄ μ¬μ© κ°λ₯νλ€.
- λ©μλ νΈμΆ μ νλΌλ―Έν° μΈν 쑰건μ λ°λΌ νΈμΆλλ λ©μλκ° κ²°μ λλ€
- λ¦¬ν΄ νμ μ λ©μλ μ€λ²λ‘λ©μ 쑰건μ ν΄λΉνμ§ μλλ€.
* λ©μλ μ€λ²λ‘λ©μ μ ν©ν μμ
- public int add(int a, int b)
- public int add(int a, int b, int c) _ νλΌλ―Έν°μ κ°μκ° λ€λ¦
- public double add(double a, double b) _ νλΌλ―Έν°μ κ°μλ κ°μ§λ§ μλ£νμ΄ λ€λ¦
* λ©μλ μ€λ²λ‘λ©μ λΆμ ν©ν μμ
- public int add(int a, int b)
- public int add(int a, int b) _ νλΌλ―Έν°, μ΄λ¦μ΄ μμ ν λμΌ
- public long add(int a, int b) _ λ¦¬ν΄ νμ μ λ€λ₯΄μ§λ§, νλΌλ―Έν°κ° λμΌν¨
μμ±μ μ€λ²λ‘λ©
- μ΄κΈ°νλ₯Ό μνλ λ©€λ² λ³μλ§ μ νν΄μ μ΄κΈ°ν ν μ μλ€ (λΉλ²νκ² μ¬μ© λ¨)
- μμ±μλ μ€λ²λ‘λ©μ΄ κ°λ₯νλ€
μ½λνλ μ Java μΉ κ°λ° 체νλ¨ νλ μ€ 'Java νλ‘κ·Έλλ° μ΄κΈ' μ΄λ¬λ κ°μλ₯Ό λ£κ³ μμ±νμμ΅λλ€ :)
μ½λνλ μ URL: https://www.codepresso.kr/
'π κΈ°ν > μ½λνλ μ 체νλ¨_BE' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] 컬λ μ νλ μμν¬μ μ λ€λ¦ (0) | 2022.01.21 |
---|---|
[Java] μμ(Inheritance) | μ€λ²λΌμ΄λ© | λ€νμ± (0) | 2022.01.21 |
[Git] GitFlow | λΈλμΉ νμ© μ λ΅ (0) | 2022.01.17 |
[Git] Tagμ μ’ λ₯ λ° Tag μμ±νκΈ° (0) | 2022.01.17 |
[Git] Branchμ μ΄ν΄ | Merge | Conflict ν΄κ²°νκΈ° (0) | 2022.01.17 |