[JAVA] μΊ‘μν(Encapsulation)λ?
in Tech-Stack on JAVA
Contents
μΊ‘μνλ?
μΌλ°μ μΌλ‘ λ³μμ ν΄λμ€λ₯Ό νλλ‘ λ¬Άλ μμ μ μλ―Ένλ€.
μΊ‘μνλ μ€μν λ°μ΄ν°λ₯Ό 보쑴, 보νΈνκΈ° μν΄ μ¬μ©λλ€.
μ¦, ν΄λμ€μ λ΄λ λ΄μ© μ€ μ€μν λ°μ΄ν°λ κΈ°λ₯μ μΈλΆμμ μ§μ μ κ·Όνμ§ λͺ»νλλ‘ μ¬μ©νλ κ²μ΄λ€.
privateλ©€λ²λ μΈλΆμμ κ°μ μ§μ μ μΌλ‘ λμ μν¬ μ μκ³ κ°μ²΄κ° μ 곡νλ νλμ λ©μλλ₯Ό ν΅ν΄μλ§ μ κ·Όμ΄ κ°λ₯νλ€.privateλ³μμ κ°μ λμ νκΈ° μν΄μλpublicμΌλ‘ μ 곡λλ set, get ν¨μλ₯Ό μ¬μ©ν΄μΌ νλ€.- set ν¨μμμλ
privateλ©€λ²μ μ μ½μ‘°κ±΄μ κ±Έμ΄μ μκΈ°μΉ μμ κ°μ λν΄ λ¬Έμ λ₯Ό λ°©μ§ν μ μλ€.
μΊ‘μνλ μ κ·Όμ μ΄μλ₯Ό ν΅ν΄ μ΄λ£¨μ΄μ§λ€.
κ°μ²΄κ° κ°κ³ μλ λ΄λΆ λ°μ΄ν°λ μ¨κΈ°λ κ²μ΄ κ·μΉμ΄λ€. νμ§λ§ μ΄ κ·μΉμ μ΄κ²¨λ μλ¬κ° λ°μνμ§ μλλ€.
// Info class
Class Info() {
String name;
}
...
// main method
public static void main(String[] args) {
Info i = new Info();
// λ΄λΆ λ°μ΄ν°λ₯Ό μΈλΆμμ μμ , but μ€λ₯κ° λ°μνμ§ μμ
i.name = "νκΈΈλ";
}
μΊ‘μν λ°©λ²
- λ©€λ² λ³μ μμ μ κ·Όμ νμ
privateλ₯Ό λΆμΈλ€.public class Test { private int score; } - ν΄λΉ λ©€λ² λ³μμ κ°μ μ€μ νκ³ κΊΌλ΄μ¬ μ μλ λ©μλλ₯Ό λ§λ λ€.(
setter/getter)getter: λ©€λ² νλμ κ°μ λ°ννλ λ©€λ² λ©μλsetter: λ©€λ² νλμ κ°μ μ€μ νλ λ©€λ² λ©μλ
public class Test { private int score; void setScore(int n) { score = n; } int getScore() { return score; } }
- μ€ν
public static void main(String[] args) {
// private λ©€λ²κ° μ‘΄μ¬νλ Test κ°μ²΄ μμ± & μ΄κΈ°ν
Test t = new Test();
// Testμ scoreμ μ§μ μ κ·Όμ΄ λΆκ°λ₯ν¨μΌλ‘ μλ¬ λ°μ
t.score = 100;
// setter λ©μλλ₯Ό ν΅ν΄ κ°μ μ€μ νλ€.
t.setScore(100);
System.out.println(t.getScore);
}
// μ€ν κ²°κ³Ό =========
// 100
