Java
접근제어자
데분몽굴
2024. 3. 24. 20:38
자바는 public,private같은 접근 제어자(access modifier)를 제공한다. 접근 제어자를 사용하면 해당 클래스 외부에서 특정 필드나 메서드에 접근하는 것을 허용하거나 제한할 수 있다.
private 접근 제어자는 모든 외부 호출을 막는다. 따라서 private이 붙은 경우 해당 클래스 내부에서만 호출할 수 있다.
package access;
public class Speaker {
private int volume;
Speaker(int volume){
this.volume = volume;
}
}
volume 필드는 private으로 설정되어 있기 때문에 외부에서 접근할 수 없다.
** 좋은 프로그램은 무한한 자유도가 아니라 적절한 제한이 있어야 한다.
접근 제어자 종류
- private : 모든 외부 호출을 막는다
- default(package-private) : 같은 패키지 안에서 호출은 허용한다.
- protected : 같은 패키지안에서 호출은 허용한다. 패키지가 달라도 상속 관계의 호출은 허용한다.
- public : 모든 외부 호출을 허용한다.
private이 가장 많이 차단하고, public이 가장 많이 허용한다.
private -> default -> protected - > public
package-private(default)
동일한 패키지 내의 다른 클래스에서만 접근이 가능하다.
접근 제어자의 핵심은 속성과 기능을 외부로부터 숨기는 것이다.