All :L
[Java] μΆμν (Abstraction) λ³Έλ¬Έ
λ°μν
π κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°
1οΈβ£ κ°μ²΄μ§ν₯ μΈμ΄ νΉμ§
- OOP is A P.I.E
- Abstraction(μΆμν)
- Polymorphism(λ€νμ±)
- Ingeritance(μμ)
- Encapsulation(λ°μ΄ν° μλκ³Ό 보νΈ)
2οΈβ£ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°(Object Oriented Programming)
- κ°μ²΄
- μ£Όμ²΄κ° μλ κ², μ£Όμ²΄κ° νμ©νλ κ²
- κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°
- μ£Όλ³μ λ§μ κ²λ€μ κ°μ²΄ν ν΄μ νλ‘κ·Έλλ° νλ κ²
- μ₯μ
- λΈλ‘ ννμ λͺ¨λνλ νλ‘κ·Έλλ° → μ λ’°μ± ι« / μΆκ°, μμ , μμ μ©μ΄ / μ¬μ¬μ©μ± ι«
3οΈβ£ νμ€ μΈκ³ κ°μ²΄, ν΄λμ€, νλ‘κ·Έλ¨μ κ°μ²΄(instance, object)μ κ΄κ³
- μΆμν & ꡬ체ν
- νμ€μ κ°μ²΄κ° κ°λ μμ±κ³Ό κΈ°λ₯μ μΆμν λμ΄ ν΄λμ€μ μ μλ¨.
- ν΄λμ€λ ꡬ체ν λμ΄ νλ‘κ·Έλ¨μ κ°μ²΄(instance, object)κ° λ¨.
- νμ€μ κ°μ²΄λ μ°λ¦¬κ° λ§μ§κ³ λλ μ μλ κ² → μ€μνμ ꡬ체ν λμ΄μλ λ΄μ©
- κ°μ²΄λ₯Ό λ§€λ² μλ‘ λ§λ€μ΄μΌ νλ€λ©΄?
- μ€μν → ν, μ€κ³λ μ¬μ©
- μ€κ³λ → μ νμ λ§λ€κΈ° μν΄ νμνμ§λ§ μ€μ λ‘ μ¬μ© x, μ€κ³λλ‘ λ§λ μ ν μ¬μ©
- μ€κ³λλ νλμ μ’ λ₯(Type)κ° λκ³ λμ¨ μ νμ κ°μ²΄λΌκ³ λΆλ₯΄λ©° μ£Όμ²΄κ° μ¬μ©
- νλ‘κ·Έλ¨μ ν΄λμ€μ κ°μ²΄
- ν΄λμ€λ₯Ό κ°μ²΄λ‘ ꡬ체ν & κ°μ²΄ν
- ν΄λμ€
- κ°μ²΄λ₯Ό μ μν΄ λμ κ². μ¦, κ°μ²΄μ μ€κ³λ, ν
- κ°μ²΄λ₯Ό μμ±ν λ μ¬μ©
- λ°μ΄ν° νμ
- κ°μ²΄
- ν΄λμ€λ₯Ό ꡬ체ν ν κ²
- ν΄λμ€λ₯Ό λ°μ΄ν° νμ μΌλ‘ λ©λͺ¨λ¦¬μ μμ±λμ΄ μ€μ λ‘ λμνλ κ²
- λ©λͺ¨λ¦¬μ μμ±λ λ°μ΄ν°
4οΈβ£ κ°μ²΄ μ¬μ©νκΈ°
- ν΄λμ€ νλλ λ νΌλ°μ€ νμ μ λ³μ. μ¦, Typeμ ν΄λμ€λͺ μ΄λΌκ³ λ³Ό μ μμ.
5οΈβ£ κ°μ²΄ μμ±κ³Ό λ©λͺ¨λ¦¬
- JVM λ©λͺ¨λ¦¬ ꡬ쑰
- meta-space
- ν΄λμ€ μ 보 μ²λ¦¬(νμ , Field, Method μ 보)
- stack
- λ©μλλ€μ μ€ν 곡κ°
- thread λ³λ‘ λ³λ κ΄λ¦¬
- λ©μλ νΈμΆ μ λ§λ€ λ©μλ νλ μ μ μΈ΅
- λ©μλ νλ μμ λ‘컬λ³μλ μμ΄λ ꡬ쑰
- λ©μλλ€μ μ€ν 곡κ°
- heap
- κ°μ²΄λ₯Ό μ μ₯νκΈ° μν μμ
- threadμ μν΄ κ³΅μ
- κ°μ²΄κ° μμ±λκ³ G.Cμ μν΄ μ 리λ¨.
- μμ ν
- κ°μ²΄λ₯Ό μ μ₯νκΈ° μν μμ
- meta-space
- κ°μ²΄μ μμ± & λ©λͺ¨λ¦¬ ν λΉ
- java νμΌ κΈ°μ‘΄ νμΌκ³Ό λ³κ²½ μ¬ν νμΈνκΈ°
- μ°Έμ‘°νκ³ μλ κ²μ΄ μμ κ²½μ° garbage / μ΄λ¬ν κ²μ μμ νλκ² garbage colletor
π λ³μ
1οΈβ£ λ³μ μ’ λ₯
- νμ
μ λ°λ₯Έ λΆλ₯
- Primitive Type Variable → int i, char c, …
- Reference Type variable → String s, int [] points, Person p, …
- μ μΈ μμΉμ λ°λ₯Έ λΆλ₯
- λ©€λ² λ³μ
- ν΄λμ€ μμ(static keyword) → ν΄λμ€ λ©€λ² λ³μ
- ν΄λμ€ μμ → μΈμ€ν΄μ€ λ©€λ² λ³μ
- μ§μ λ³μ
- ν¨μ λ΄λΆ → μ§μ λ³μ
- ν¨μ μ μΈλΆ → νλΌλ―Έν° λ³μ
- λ©€λ² λ³μ
2οΈβ£ μΈμ€ν΄μ€ λ©€λ² λ³μ
- μ μΈ μμΉ
- ν΄λμ€ {} μμμ μ μΈ
- λ³μ μμ±
- κ°μ²΄κ° λ§λ€μ΄μ§ λ heapμ κ°μ²΄ λ³λ‘ μμ±
- λ³μ μ΄κΈ°ν
- νμ λ³λ‘ default μ΄κΈ°ν
- λ³μ μ κ·Ό
- κ°μ²΄ μμ± ν(λ©λͺ¨λ¦¬μ μ¬λ¦° ν) κ°μ²΄ μ΄λ¦(μμ)μΌλ‘ μ κ·Ό
- κ°μ²΄λ₯Ό λ§λ€ λλ§λ€ κ°μ²΄ λ³λ‘ μμ± → κ°μ²΄λ§λ€ κ³ μ ν μν(λ³μ κ°) μ μ§
- μλ©Έ μμ
- Garbage Collectorμ μν΄ κ°μ²΄κ° μμ΄μ§ λ
- νλ‘κ·Έλλ¨Έκ° λͺ μμ μΌλ‘ μλ©Έ μν¬ μ X
3οΈβ£ ν΄λμ€ λ©€λ² λ³μ
- μ μΈ μμΉ
- ν΄λμ€ {} μμμ μ μΈ, static ν€μλλ₯Ό λΆμ.
- λ³μ μμ±
- ν΄λμ€ λ‘λμ μν΄ ν΄λμ€κ° λ‘λ© λ λ heapμ ν΄λμ€ λ³λ‘ μμ±
- λ³μ μ΄κΈ°ν
- νμ λ³λ‘ default μ΄κΈ°ν
- λ³μ μ κ·Ό
- κ°μ²΄ μμ±κ³Ό 무κ΄νκ² ν΄λμ€ μ΄λ¦(μμ)μΌλ‘ μ κ·Ό
- κ°μ²΄λ₯Ό μμ±νκ³ κ°μ²΄ μ΄λ¦μΌλ‘ μ κ·Ό κ°λ₯νλ staticμ λΆν©ν ννμ μλ
- → classλ‘ μ κ·Ό
- μλ©Έ μμ
- ν΄λμ€κ° μΈλ‘λ λ λ G.C λ°μ
4οΈβ£ μ§μ λ³μ & νλΌλ―Έν° λ³μ
- μ μΈ μμΉ
- ν΄λμ€ μμμ {} μ΄μΈμ λͺ¨λ μ€κ΄νΈ μμ μ μΈ
- λ³μ μμ±
- μ μΈλ λΌμΈμ΄ μ€νλ λ
- μμ± λ©λͺ¨λ¦¬ μμ → stackμ λ©μλ νλ μ λ΄λΆ
- λ³μ μ΄κΈ°ν
- μ¬μ©νκΈ° μ λͺ μμ μ΄κΈ°ν νμ
- λ³μ μ κ·Ό
- μΈλΆμμλ μ κ·Ό λΆκ°, μμ λΆνμ
- λ΄λΆμμλ μ΄λ¦μ λ°λ‘ μ κ·Ό
- μλ©Έ μμ
- μ μΈλ μμμΈ {}μ λ²μ΄λ λ
π λ©μλ
1οΈβ£ λ©μλ
- νμ€μ κ°μ²΄κ° νλ λμμ νλ‘κ·Έλλ° ν
- μ΄λ€ μμ μ μννλ λͺ λ Ήλ¬Έμ μ§ν©
- λ©μλ μμ± μ΄μ
- λ°λ³΅μ μΌλ‘ μ¬μ©λλ μ½λ μ€λ³΅ λ°©μ§ (DRY, WET)
- μ½λμ μ μ€μΌ μ μκ³ μ μ§ λ³΄μ μ©μ΄
- λ©μλ νμμ±
- λ©μλ μ¬μ© x
Person p = new Person(); System.out.println(p.name + ":" + p.age); Person p2 = new Person(); System.out.println(p2.name + ":" + p2.age);
- λ©μλ μ¬μ© o
Person p = new Person(); Person p2 = new Person()l p.printInfo(); p2.printInfo();
2οΈβ£ Variable arguments
- λ©μλ μ μΈ μ λμΌ νμ
μ μΈμκ° λͺ κ° λ€μ΄μ¬ μ§ μμν μ μλ κ²½μ° (κ°λ³μ )
- λ°°μ΄ νμ μ μΈν μ O
- → λ©μλ νΈμΆ μ λ°°μ΄ μμ±, μ΄κΈ°ν ν΄μΌν¨. (λ²κ±°λ‘μ)
- … μ μ΄μ©ν΄ νλΌλ―Έν° μ μΈ
- → νΈμΆ μ λκ²¨μ€ κ°μ κ°μμ λ°λΌ μλ λ°°μ΄ μμ± λ° μ΄κΈ°ν
3οΈβ£ λ©μλ νΈμΆ
- λ©μλ νΈμΆ μ λ©μλμ μ μΈλΆμ λ§μΆ° νΈμΆν΄μΌ ν¨.
- λ©μλ μ΄λ¦ : λ°λμ λμΌ
- νλΌλ―Έν° : μ μΈλ νλΌλ―Έν°μ κ°μ λμΌ, νμ μ promotion μ μ© κ°λ₯
- λ©μλ μ κ·Ό
- λ©€λ² λ³μμ λ§μ°¬κ°μ§λ‘ static λλ non static μν ꡬλΆν΄μ νΈμΆ
- class λ©€λ²μ instance λ©€λ²κ°μ μ°Έμ‘°μ νΈμΆ - 29page μ°Έκ³
- νΈμΆνλ €λ λ©€λ²κ° λ©λͺ¨λ¦¬μ μλμ§
- μμΌλ©΄ νΈμΆ O
- μμΌλ©΄ νΈμΆ X → λ¨Όμ λ‘λ© ν μ¬μ©ν΄μΌ ν¨
- static member → μΈμ λ λ©λͺ¨λ¦¬ O
- ν΄λμ€ λ‘λ© μ μλ λ±λ‘
- instance member → κ°μ²΄ μμ± μ λ©λͺ¨λ¦¬ X
- κ°μ²΄ μμ± μ λͺ¨λ instance λ©€λ²λ€μ λ©λͺ¨λ¦¬μ μμ±
- λ νΌλ°μ€λ₯Ό ν΅ν΄ μ κ·Ό
- νΈμΆνλ €λ λ©€λ²κ° λ©λͺ¨λ¦¬μ μλμ§
- λ©μλ νΈμΆ μ€ν
- μ€ν
- First in Last out ꡬ쑰
- λ©μλ νΈμΆ μ€ν
- κ° λ©μλ νΈμΆ μ λ§λ€ λ©μλ λμμ μν λ©λͺ¨λ¦¬ μμλ₯Ό νλμ© ν λΉ
- μμ λ΄λΆμ λ©μλλ₯Ό μν νλΌλ―Έν° λ³μ λ± λ‘컬 λ³μ ꡬμ±
- κ° λ©μλ νΈμΆ μ λ§λ€ λ©μλ λμμ μν λ©λͺ¨λ¦¬ μμλ₯Ό νλμ© ν λΉ
- μ€ν
- κΈ°λ³Έν λ³μμ μ°Έμ‘°ν λ³μ - 31page μ°Έκ³
- λ©μλ νΈμΆ μ νλΌλ―Έν°λ‘ μ λ ₯λ κ°μ 볡μ¬ν΄μ μ λ¬
4οΈβ£ λ©μλ μ€λ²λ‘λ©
- μ€λ²λ‘λ©
- λμΌν κΈ°λ₯μ μννλ λ©μλμ μΆκ° μμ±
- μΌλ°μ μΌλ‘ λ©μλ μ΄λ¦μ κΈ°λ₯λ³λ‘ μλ―Έ μκ² μ ν¨
- λμΌν κΈ°λ₯μ μ¬λ¬ ννλ‘ μ μ
- μ₯μ
- κΈ°μ΅ν΄μΌ ν λ©μλκ° κ°μ
- μ€λ³΅ μ½λμ λν ν¨μ¨μ κ΄λ¦¬ κ°λ₯
- λ°©λ²
- λ©μλ μ΄λ¦ λμΌ
- νλΌλ―Έν° κ°μ or μμ, νμ
μ΄ λ¬λΌμΌ ν¨
- νλΌλ―Έν°κ° κ°μΌλ©΄ μ€λ³΅ μ μΈ μ€λ₯
- λ¦¬ν΄ νμ μ μλ―Έ X
π μμ±μ
1οΈβ£ μμ±μ
- κ°μ²΄λ₯Ό μμ±ν λ νΈμΆνλ λ©μλ λΉμ·ν κ²
- new ν€μλμ ν¨κ» νΈμΆνλ κ²
- μΌλ° λ©€λ² λ³μμ μ΄κΈ°νλ κ°μ²΄ μμ± μ μ€νλΌμΌ νλ μμ μ 리
- μμ± κ·μΉ
- λ©μλμ λΉμ·νλ λ¦¬ν΄ νμ X
- μ΄λ¦μ ν΄λμ€ μ΄λ¦κ³Ό λμΌ
μ νμ ν΄λμ€_λͺ (νμ λ³μ_λͺ , νμ λ³μ_λͺ ...) { // λ©€λ² λ³μ μ΄κΈ°ν μμ }
2οΈβ£ μμ±μ μ’ λ₯
- κΈ°λ³Έ μμ±μ(default constructor)
- νλΌλ―Έν° X, ꡬνλΆκ° λΉμ΄μλ νν
- μμ±μ μ½λκ° μμΌλ©΄ μ»΄νμΌλ¬κ° κΈ°λ³Έ μμ±μ μ 곡
- νλΌλ―Έν°κ° μλ μμ±μ
- μμ±μμ λͺ©μ μ΄ μΌλ° λ©€λ² λ³μμ μ΄κΈ°ν
- → μμ±μ νΈμΆ μ κ°μ λ겨μ€μ μ΄κΈ°ν
3οΈβ£ this.
- μ°Έμ‘° λ³μλ‘μ¨ κ°μ²΄ μμ μ κ°λ¦¬ν΄
- thisλ₯Ό μ΄μ©ν΄ μμ μ λ©€λ²μ μ κ·Ό κ°λ₯
- μ©λ
- λ‘컬 λ³μμ λ©€λ² λ³μμ μ΄λ¦μ΄ λμΌν κ²½μ° λ©€λ² λ³μμμ λͺ μμ μΌλ‘ λνλ
- λͺ μμ μΌλ‘ λ©€λ²μμ λνλΌ κ²½μ° μ¬μ©
- thisλ κ°μ²΄μ λν μ°Έμ‘° → static μμμμ this μ¬μ© λΆκ°
4οΈβ£ this()
- λ©μλμ λ§μ°¬κ°μ§λ‘ μμ±μλ μ€λ²λ‘λ© κ°λ₯
- κ°μ²΄ μμ± μ νμν λ©€λ² λ³μλ§ μ΄κΈ°ν μ§ν
- → μμ±μ λ³ μ½λμ μ€λ³΅ λ°μ
- ν μμ±μμμ λ€λ₯Έ μμ±μ νΈμΆν λ μ¬μ©
- λ°λμ 첫 μ€μμλ§ νΈμΆ κ°λ₯
5οΈβ£ μ΄κΈ°ν λΈλ‘
- μμ±μμ²λΌ λ©€λ² λ³μμ μ΄κΈ°νλ₯Ό λͺ©μ μΌλ‘ ν¨
- {}λ₯Ό μ΄μ©ν΄ λ΄λΆ μ€ν μ½λ μμ±
- if μ΄λ¦ X → λ³λ νΈμΆ X, νλΌλ―Έν° λ°μ μ X
- μ΄κΈ°ν λΈλ‘ μ’
λ₯
- ν΄λμ€ μ΄κΈ°ν λΈλ‘
- ν΄λμ€ λ©€λ² λ³μ μ΄κΈ°νμ μ¬μ©
- ν΄λμ€ λ‘λ© μ 1ν νΈμΆ
- μΈμ€ν΄μ€ μ΄κΈ°ν λΈλ‘
- μΈμ€ν΄μ€ λ©€λ² λ³μ μ΄κΈ°νμ μ¬μ©
- μμ±μ μ½λ μ€νλ³΄λ€ λ¨Όμ νΈμΆ λ¨
- κ°μ²΄ μμ±μ λ§λ€ 1ν νΈμΆ
- ν΄λμ€ μ΄κΈ°ν λΈλ‘
λ°μν
'STUDY > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] μ λ€λ¦ (Generic) (2) | 2024.10.28 |
---|---|
[Java] μΈν°νμ΄μ€ (Interface) (0) | 2024.10.26 |
[Java] λ€νμ± (Polymorphism) (0) | 2024.10.24 |
[Java] μμ (Inheritance) (0) | 2024.10.20 |
[Java] μλ° κΈ°λ³Έ (0) | 2024.10.16 |
Comments