μΊ‘μν
κ°μ²΄λ₯Ό μΊ‘μλ‘ μΈμ λ΄λΆ 보νΈ, μΈλΆ μ κ·ΌμΌλ‘λΆν° μμ
ν΄λμ€ → μΈμ€ν΄μ€ ν΄λμ€ (νλ, λ©μλ)
κ°μ²΄ = ν΄λμ€μ μΈμ€ν΄μ€
μμ
μμν΄λμ€κ° λΆλͺ¨ν΄λμ€λ₯Ό λ¬Όλ € λ°μ λΆλͺ¨ν΄λμ€μ κΈ°λ₯μ νμ₯ νλ κ°λ
λΆλͺ¨ν΄λμ€ = μνΌν΄λμ€
μμν΄λμ€ = μλΈν΄λμ€
λ€νμ±
λ©μλκ° ν΄λμ€/κ°μ²΄μ λ°λΌ λ€λ₯΄κ² ꡬνλλ κ²
λ©μλ μ€λ²λΌμ΄λ© :
λ©μλ μ€λ²λ‘λ© :
ν΄λμ€μμ±
μ κ·Όμ§μ μ , ν΄λμ€ μ μΈ, ν΄λμ€ μ΄λ¦, λ©€λ² = ν΄λμ€ κ΅¬μ±μμ (νλ, λ©μλ)
κ°μ²΄μμ±
1. κ°μ²΄μ λν λ νΌλ°μ€ λ³μ μ μΈ
Circle pizza;
2. κ°μ²΄ μμ± (new μ°μ°μ)
pizza = new Circle();
- μ μΈ + κ°μ²΄ λμμ νκΈ°
Circle pizza = new Circle();
3. μ κ·Ό (. μ μ°μ°μ )
pizza.name = "νΌμ";
μμ±μ
κ°μ²΄κ° μμ±λ λ μ΄κΈ°νλ₯Ό μν΄ μ€νλλ λ©μλ
1. μμ±μλ ν΄λμ€ μ΄λ¦κ³Ό λμΌ (νμ)
2. μμ±μ μ¬λ¬κ° μμ± κ°λ₯
3. μμ±μλ κ°μ²΄λ₯Ό μμ±ν λ νλ²λ§ νΈμΆ λ¨
4. μμ±μμ 리ν΄νμ μ§μ λΆκ°λ₯ XX
5. μμ±μμ λͺ©μ μ κ°μ²΄ μμ±μ μν μ΄κΈ°μμ μ
κΈ°λ³Έμμ±μ = λν΄νΈ μμ±μ
맀κ°λ³μ X , λ¨μ λ¦¬ν΄ μμ±μ
- ν΄λμ€μ μμ±μκ° νλλ μμΌλ©΄ (μ»΄νμΌμ€λ₯)
μ»΄νμΌλ¬κ° μλμΌλ‘ μμ± ν΄μ€
- μμ±μκ° νλλΌλ μ‘΄μ¬νλ©΄ μλ μμ± μλ¨
this λ νΌλ°μ€
κ°μ²΄ μκΈ° μμ μ λν λ νΌλ°μ€, μ»΄νμΌλ¬μ μν΄ μλ κ΄λ¦¬
- λ€λ₯Έ μμ±μ νΈμΆκ°λ₯ this()
1. μμ±μμμλ§ μ¬μ©λ¨!
2. λ°λμ κ°μ ν΄λμ€μ λ€λ₯Έ μμ±μ!!λ₯Ό νΈμΆν λ μ¬μ©
3. λ°λμ μμ±μμ 첫문μ₯!!μΌλ‘ μ¬μ©λμ΄μΌν¨
κ°μ²΄ λ°°μ΄
κ°μ²΄ λ νΌλ°μ€λ₯Ό μμλ‘ κ°λ λ°°μ΄
1. λ νΌλ°μ€ μ μΈ (ν¬κΈ° μ€μ X)
Circle [] c;
2. λ νΌλ°μ€ λ°°μ΄ μμ±
c = new Circle[5];
3. κ°μ²΄ μμ±
for (int = i ; i<c.length; i++)
c[i] = new Circle(i);
λ°°μ΄ μμ κ°μ²΄ μ κ·Ό (μΈλ±μ€)
c[i]
λ©μλ νμ
μ κ·Όμ§μ μ , 리ν΄νμ
μΈμ μ λ¬ = κ°μ μν νΈμΆ
1. κΈ°λ³Έ νμ κ° μ λ¬
κΈ°λ³Έ νμ => λ³΅μ¬ λμ΄ μ λ¬
2. κ°μ²΄ μ λ¬
ν΄λμ€ νμ => κ°μ²΄μ λ νΌλ°μ€κ° μ λ¬
3. λ°°μ΄ μ λ¬
λ°°μ΄ => λ°°μ΄μ λν λ νΌλ°μ€ μ λ¬
λ©μλ μ€λ²λ‘λ© = λ©μλ μ€λ³΅
μ΄λ¦ κ°μ§λ§ , 맀κ°λ³μ νμ -κ°μκ° λ€λ₯Έ λ©μλλ€
- μ΄λ¦μ΄ λμΌν΄μΌν¨
- 맀κ°λ³μ κ°μ-νμ μ΄ μλ‘ λ¬λΌμΌν¨
κ°μ²΄ μΉν
κ°μ²΄ 볡μ¬κ° μλ X
ob1= ob2
ob1 μ κ°μ²΄λ μ무λ κ°λ¦¬ν€μ§ μμ μ κ·Ό λΆκ° μν κ°λΉμ§κ° λμ΄ μλμΌλ‘ μκ±°λΌ μ¬μ¬μ©λ¨.
κ°μ²΄ μλ©Έ
κ°μ²΄ μλ©Έ μν€λ μ°μ°μλ μλ€ / κ°λ°μ λ§μλλ‘ κ°μ²΄ μλ©Έ λΆκ°λ₯
κ°λΉμ§
ν λΉ λ°μ κ°μ²΄, λ°°μ΄ λ©λͺ¨λ¦¬ μ€ λμ΄μ μ¬μ©νμ§ μκ²λ λ©λͺ¨λ¦¬
μ°Έμ‘°νλ λ νΌλ°μ€κ° νλλ μλ κ°μ²΄ / λ°°μ΄μ κ°λΉμ§λ‘ νλ¨ν¨
κ°λΉμ§ 컬λ μ (by κ°λΉμ§ 컬λ μ μ€λ λ)
κ°λΉμ§κ° λ§μμ§λ©΄ κ°μ© λ©λͺ¨λ¦¬ μμ΄ μ€μ΄λ¬, μΌμ ν¬κΈ° μ΄νλ‘ μ€μ΄λ€λ©΄ JVM μ΄ κ°λΉμ§ νμν΄μ κ°μ©λ©λͺ¨λ¦¬λ₯Ό λλ €μ€
System.gc(); //κ°λΉμ§ 컬λ μ μμ²
μ κ·Όμ§μ μ
- private
- protected
- public
- μλ΅ (λν΄νΈ μ κ·Ό μ§μ )
ν΄λμ€ μ κ·Ό μ§μ
- public
- default
λ©€λ² μ κ·Ό μ§μ
private(ν΄λμ€ λ΄) < default (λμΌ ν¨ν€μ§ λ΄)< protected < public
- protected
- κ°μ ν¨ν€μ§ λ΄μ λͺ¨λ ν΄λμ€
- λ€λ₯Έ ν¨ν€μ§λΌλ μμ ν΄λμ€μ κ²½μ° μ κ·Ό νμ©
static λ©€λ² = ν΄λμ€ λ©€λ²
static μ§μμ΄λ‘ μ μΈλ λ©€λ²
-λ 립μ μΈ κ³΅κ° ν λΉ λ°μ
-ν΄λμ€λΉ νλλ§ μμ±λ¨
-κ°μ²΄ κ³΅κ° ν λΉ μ μ΄λ―Έ μΈλΆμ λ³λλ‘ μ‘΄μ¬ν¨ (νλ‘κ·Έλ¨ μμ / ν΄λμ€ λ‘λ© μ μμ±)
-κ°μ²΄ μλ©Έν΄λ κ³΅κ° μ°¨μ§ → νλ‘κ·Έλ¨ μ’ λ£μ μλ©Έλ¨
-λμΌν ν΄λμ€ λͺ¨λ κ°μ²΄λ€μ μν΄ κ³΅μ λ¨. (ν΄λμ€ μ΄λ¦ / κ°μ²΄ μ΄λ¦μΌλ‘ νμ© κ°λ₯)
static int m; ⇒ StaticSample.m = 3
1.μ μλ³μ/ μ μν¨μ λ§λ€ λ νμ©
2.곡μ λ©€λ² λ§λ€ λ νμ©
1.staticλ©€λ²λ§ staticλ©μλμ μ κ·Ό κ°λ₯
2.staticλ©€λ²λ₯Ό μΈμ€ν΄μ€ λ©€λ²λ μ¬μ©ν μ μλ€.
3.staticλ©μλμλ this λ₯Ό μ¬μ© λΆκ°
final ν€μλ
- final ν΄λμ€ : μμ X
- final λ©μλ : μ€λ²λΌμ΄λ© X
- final νλ : μμν