μΊ‘μν
Encapsulation ( μΊ‘μν )
<1>μ νμ
- μ νμ (modifier) ν΄λμ€, λ³μ, λ©μλ μ μΈλΆμ ν¨κΌ μ¬μ©λμ΄ λΆκ°μ μΈ μλ―Έλ₯Ό λΆμ¬
- μ κ·Ό μ νμ : private, default(package), protected, public
- static : ν΄λμ€ λ 벨μ μμ μ€μ
- final : μμλ₯Ό λμ΄μ μμ ν μ μκ² ν¨
- abstract: μΆμ λ©μλ λ° μΆμ ν΄λμ€ μμ±
- synchronized: λ©ν° μ€λ λμμμ λκΈ°ν μ²λ¦¬
- μ κ·Ό μ νμ

public class Parent{
public int publicVar;protected int protectedVar;int defaultVar;private int privVar;
public void useMember(){
this.publicVar=10; this.protectedVa= 10;this.defaultVar=10;this.privVar 10;}
}
public class Child extends Parent{
public void useMember(){
this.publicVar = 10;
this.protectVar =10;
this.defaultVar=10; //κ°λ₯
this.privVar =10 ;
this.some = 10; //λΆκ°λ₯
}
}
public class Friend {
public void method(){
p.publicVar=1;
p.protectVar=1;
p.defaultVar =1; //κ°λ₯
p.privVar=1; //not visible
}
}
π§Έ νλμ λμμ μ¬λ¬ μ νμλ₯Ό μ‘°ν© κ°λ₯νλ, μ κ·Ό μ νμλ νλλ§ μ¬μ© κ°λ₯νλ€ → Eclipse λ₯Ό μ΄μ΄λ³΄λ©΄, class μμ± μ modifiersλμ 보면 μ κ·Όμ νμλ radio buttonμΌλ‘ νλλ§ μ€μ ν μ μμ§λ§, abstractλ final μ μ€λ³΅ μ ν κ°λ₯ν κ²μ νμΈν΄λ³Ό μ μλ€.

π§Έ μμλ 무κ΄νλ μΌλ°μ μΌλ‘ μ κ·Ό μ νμλ₯Ό 맨 μμΌλ‘ μ¬μ©νλ€
π§Έ final μ©λ :
- final class: λμ΄μ νμ₯ ν μ μμ - μμ κΈμ§ → μ€λ²λΌμ΄λλ₯Ό λ°©μ§ (μ΄λ―Έ μλ²½^^)
- final method: λμ΄μ μ¬μ μ λΆκ° → μ€λ²λΌμ΄λ© κΈμ§
- final variable: λμ΄μ κ°μ λ°κΏ μ μμ → μμν
<2>μΊ‘μν
π€¦π»βοΈ Eclipse > Source λ€μ΄κ°λ©΄ constructors, getters and setters λ₯Ό μλμΌλ‘ μμ±ν΄μ€λ€ !
λ°μ΄ν° μλκ³Ό 보νΈ
μΈλΆμμ λ³μλ₯Ό μ§μ μ κ·Όνλ€λ©΄ μμ€ν μ λ³΄κ° λ³΄νΈλμ§ λͺ»νλ€. λ°λΌμ, λ³μλ₯Ό private μ κ·ΌμΌλ‘ λ§κ³ 곡κ°λλ λ©μλλ₯Ό ν΅ν΄ μ κ·Ό ν΅λ‘λ₯Ό λ°λ‘ λ§λ ¨ν΄μ€λ€ (Setters & Getters)
<3>μ±κΈν΄ λμμΈ ν¨ν΄
- κ°μ²΄μ μμ±μ μ νν΄μΌ νλ κ²½μ°
- μ¬λ¬κ°μ κ°μ²΄κ° νμ μλ κ²½μ°: μμ κ°λ₯ν λ§΄λ²λ³μκ° μκ³ κΈ°λ₯λ§ μλ κ²½μ° (stateless)
- κ°μ²΄λ₯Ό κ³μ μμ±/ μμ νλλ° λ§μ λΉμ©μ΄ λ€μ΄μ μ¬μ¬μ©μ΄ μ 리ν κ²½μ°
- μ±κΈν΄ λμμΈ ν¨ν΄
- μμ±μμ μ κ·Ό μ νμλ₯Ό privateμΌλ‘ μ€μ νμ¬ μΈλΆμμ μμ±μμ μ κ·Ό κΈμ§
- λ΄λΆμμλ privateμ μ κ·Ό κ°λ₯νλ―λ‘ μ§μ κ°μ²΄ μμ± → λ§΄λ² λ³μμ΄λ―λ‘ private
- Getter μμ± : μΈλΆμμ private memberμ μ κ·Ό κ°λ₯νκ² ν¨(setterλ νμx)
- Getter μ λ³μμ staticμ μΆκ°νμ¬ κ°μ²΄ μμ΄ μΈλΆμμ μ κ·Όν μ μλλ‘ ν¨
π§Έ μΈλΆμμ getter μ ν΅ν΄μ κ°μ²΄λ₯Ό μ°Έμ‘°νκΈ°λλ¬Έμ νλμ κ°μ²΄λ§ μ¬μ¬μ©ν μμλ€