μΊ‘μν(Encapsulation)λ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°(OOP)μ ν μμΉμΌλ‘, λ°μ΄ν°μ κ·Έ λ°μ΄ν°λ₯Ό μ²λ¦¬νλ λ©μλ(ν¨μ)λ₯Ό νλμ λ¨μΌ λ¨μλ‘ λ¬Άλ κ²μ μλ―Έν©λλ€. μ΄λ μ 보 μλ(Information Hiding)μ΄λΌκ³ λ λΆλ¦½λλ€.
μΊ‘μνλ νλ‘κ·Έλ¨μ λͺ¨λμ±μ λμ΄κ³ , μ½λλ₯Ό λ μ¬μ¬μ© κ°λ₯νκ² λ§λ€λ©°, μ½λμ μ μ§λ³΄μμ±μ ν₯μμν΅λλ€.
μΊ‘μνμ ν΅μ¬ μμ΄λμ΄λ κ΄λ ¨ μλ λ°μ΄ν°μ κ·Έ λ°μ΄ν°λ₯Ό μ‘°μνλ ν¨μλ₯Ό νλμ λ¨μλ‘ λ¬Άμ΄ μΈλΆμμ μ§μ μ κ·Όνμ§ λͺ»νκ² νλ κ²μ λλ€. λμ , κ°μ²΄μ λ©μλλ₯Ό ν΅ν΄μλ§ λ°μ΄ν°μ μ κ·Όνκ³ μ‘°μν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ κ°μ²΄ λ΄λΆμ ꡬν μΈλΆμ¬νμ κ°μΆκ³ , μΈλΆμμλ μ€μ§ 곡κ°λ λ©μλλ₯Ό ν΅ν΄μλ§ κ°μ²΄μ μνΈμμ©ν μ μκ² λ©λλ€.
μ κ·Ό μ μ΄μ(Access Modifiers)
μ κ·Ό μ μ΄μ(Access Modifiers)λ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μμ ν΄λμ€μ λ©€λ²(λ³μ, λ©μλ)μ λν μ κ·Ό κΆνμ μ μ΄νλ λ° μ¬μ©λλ ν€μλμ λλ€. μ κ·Ό μ μ΄μλ ν΄λμ€μ μΊ‘μνμ μ 보 μλμ κ°ννκ³ , μ½λμ μμ μ±κ³Ό μ μ§λ³΄μμ±μ ν₯μμν€λλ° λμμ μ€λλ€. λλΆλΆμ νλ‘κ·Έλλ° μΈμ΄μμ μ΄ κ°λ μ μ§μνλ©°, μ£Όλ‘ λ€μκ³Ό κ°μ λ€ κ°μ§ μ’ λ₯μ μ κ·Ό μ μ΄μκ° μ¬μ©λ©λλ€.
μ κ·Ό μ μ΄μ | κ°μ ν΄λμ€ |
κ°μ ν¨ν€μ§ |
μμ ν΄λμ€ |
μ 체 |
public | O | O | O | O |
protected | O | O | O | X (λ€λ₯Έ ν¨ν€μ§λ©΄ μμ κ΄κ³μΌ λλ§) |
default | O | O | X | X |
private | O | X | X | X |
μ κ·Όμ μ΄μ μ½λ μμ
package Chapter05;
public class Capsule {
private int prv; // Same class
int dft; // (default) Same package
protected int prt = 77; // Same package + child class (other package)
public int pub = 99; // Unrestricted
}
package Chapter05;
class AccessModifier {
public static void main(String[] args) {
Capsule p = new Capsule();
// System.out.println(p.prv); private
System.out.println(p.dft); // default
System.out.println(p.prt); // protected
System.out.println(p.pub); // public
}
}
package Chapter06;
import Chapter05.Capsule;
class Protected_Ex extends Capsule {
public void printMember() {
// System.out.println(prv); // X
// System.out.println(dft); // X
System.out.println(prt); // 77
System.out.println(pub); // 99
}
}
package Chapter06;
public class AccessModifier2 {
public static void main(String[] args) {
Capsule c = new Capsule();
// System.out.println(c.prv); // X
// System.out.println(c.dft); // X
// System.out.println(c.prt); // 77
System.out.println(c.pub); // 99
}
}
Encapsulation allows you to hide specific information and control access to the object’s internal state.
Access modifiers are used to control the accessibility or visibility of various elements within a program, which classifies private, default, protected and public.
'Programming > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
16 Composition relationship (0) | 2024.01.20 |
---|---|
15 Inheritance (0) | 2024.01.20 |
13 Method (0) | 2024.01.20 |
12 Constructor (0) | 2024.01.19 |
11 Class intro - feat. Field (Member variable) (0) | 2024.01.19 |
λκΈ