Backend/Java
[JAVA] μ κ·Όμ μ΄μ (public, protected, default, private)
carsumin
2022. 1. 11. 14:35

μ κ·Όμ μ΄μ (Access Modifiers)
- ν΄λμ€, λ©μλ, λ³μ λ±μ λν μ κ·Ό κΆνμ μ€μ νλλ° μ¬μ©
- ν΄λμ€ μΈλΆμμ ν΄λΉ λ©€λ²μ μ κ·Όν μ μλ λ²μλ₯Ό μ ννκ±°λ νμ©
- Javaμ μ κ·Όμ μ΄μλ public, protected, default, private 4κ°μ§ μ’ λ₯κ° μλ€
public
- publicμ΄ μ§μ λ ν΄λμ€, λ©μλ, λ³μλ μ΄λμλ μ κ·Ό κ°λ₯
- λ€λ₯Έ ν¨ν€μ§μ μλ ν΄λμ€μμλ μ κ·Ό κ°λ₯
- μ£Όλ‘ λ€λ₯Έ ν΄λμ€λ ν¨ν€μ§μμ μ¬μ©ν νμκ° μλ APIλ μ νΈλ¦¬ν° ν΄λμ€μ λ©μλμ μ¬μ©
public class MyClass {
public int publicVariable;
public void publicMethod() {
System.out.println("This is a public method.");
}
}
protected
- protectedκ° μ§μ λ λ©€λ²λ κ°μ ν¨ν€μ§ λ΄μμ, λ€λ₯Έ ν¨ν€μ§μ μλ νμ ν΄λμ€μμλ μ κ·Ό κ°λ₯
- μμκ΄κ³μμλ§ μ κ·Ό κΆν λΆμ¬
- μμλ°μ ν΄λμ€μμλ§ μ¬μ©ν νμκ° μλ λ©μλλ λ³μλ₯Ό 보νΈνκ³ μ ν λ μ¬μ©
public class MyClass {
protected int protectedVariable;
protected void protectedMethod() {
System.out.println("This is a protected method.");
}
}
default
- defaultλ μ κ·Όμ μ΄μλ₯Ό λͺ μνμ§ μμ κ²½μ°
- ν΄λΉ λ©€λ²λ κ°μ ν¨ν€μ§ λ΄μμλ§ μ κ·Ό κ°λ₯, λ€λ₯Έ ν¨ν€μ§μμλ μ κ·Ό λΆκ°λ₯ (package-private)
- κ°μ ν¨ν€μ§ λ΄μμλ§ μ¬μ©νκ³ μΈλΆμλ λ ΈμΆνκ³ μΆμ§ μμ κ²½μ° μ¬μ©
class MyClass {
int defaultVariable;
void defaultMethod() {
System.out.println("This is a default method.");
}
}
private
- privateκ° μ§μ λ λ©€λ²λ ν΄λΉ ν΄λμ€ λ΄μμλ§ μ κ·Ό κ°λ₯
- ν΄λμ€ μΈλΆμμλ μ κ·Ό λΆκ°λ₯, κ°μ ν¨ν€μ§μ λ€λ₯Έ ν΄λμ€μμλ μ κ·Ό λΆκ°λ₯
- ν΄λμ€ λ΄λΆμμλ§ μ¬μ©ν΄μΌ νλ μ€μν λ°μ΄ν°λ λ©μλμ μ¬μ©
- κ°μ²΄μ μνλ₯Ό μμ νκ² λ³΄νΈνκΈ° μν΄ private λ³μλ₯Ό μ¬μ©νκ³ , μ΄μ μ κ·ΌνκΈ° μν΄ getterμ setter λ©μλλ₯Ό μ 곡
public class MyClass {
private int privateVariable;
private void privateMethod() {
System.out.println("This is a private method.");
}
public int getPrivateVariable() {
return privateVariable;
}
public void setPrivateVariable(int privateVariable) {
this.privateVariable = privateVariable;
}
}
μ 리
- μ κ·Ό μ μ΄μλ ν΄λμ€ μ€κ³ μ μ€μν μν
- ν΄λμ€μ λ©€λ²λ€μ μ κ·Ό λ²μλ₯Ό μ μ΄νμ¬ μ½λμ ꡬ쑰λ₯Ό λͺ νν νκ³ μΊ‘μνλ₯Ό νμ¬ μ μ§λ³΄μμ± ν₯μμν΄
| μ κ·Όμ μ΄μ | κ°μ ν΄λμ€ | κ°μ ν¨ν€μ§ | νμ ν΄λμ€ | λ€λ₯Έ ν¨ν€μ§ |
| public | O | O | O | O |
| protected | O | O | O | X |
| default | O | O | X | X |
| private | O | X | X | X |