자바의 접근 제어자 (Access)
접근 제어자 (Access modifier)
접근 제어자란 변수나 메서 사용권한을 모두에게 줄 수도 있고 일부에게만 혹은 아예 접근하지 못 하도록 설정을 할 수 있도록 하는 행위이다.
- private
- default
- protected
- public
이 4가지가 존재한다.
근데 이 중에서 하나는 앞에서 본 적이 있을 것이다
public
예제 코드를 올릴 때
메서드나 클래스 앞에
public static void main
이런 식으로 붙는데 여기서 public 이 접근 제어자이다.
private
우선 private는 접근을 하지 못 하도록 하는 접근 제어자이다
(절대 접근 할 수 없다.)
대표적으로 수정하면 안되는 요소들이 들어간 클래스나 메서드에 많이 붙인다
private로 클래스가 설정되면 외부 클래스에선 private 클래스를 접근자체가 불가능하다
private class 클래스명{
}
이런식으로 사용한다.
default
default는 앞에 아무것도 작성하지 않으면 자동으로 설정되는 접근 제어자이다
(일부만 접근 가능)
defalut는 패키지에 일반적으로 많이 작성이 되며
동일 패키지에서만 접근이 가능하다는 의미로 다른 폴더에 있는 클래스가 접근을 할 수 없다.
protected
protected는 동일 패키지나 현재 클래스를 상속받은 클래스에서만 접근이 가능하다 .
(일부만 접근 가능)
그래서 앞에서 말한 default 처럼 일부만 접근이 가능하며 상속관계에서 사용을 많이 한다.
public
public은 접근에 대한 제어가 없는 것을 의미한다.
(모두 접근 가능)
즉 외부에서 수정이 가능하므로 자바 main 코드 앞에 자동으로 public 이 붙는 이유 또한 그것이다.
경우에 따라서 잘 사용하면 효율적으로 코드를 배치 할 수 있지만
잘못 사용 할 경우 값을 수정해야 하는데 접근이 안된다던가, 고정값으로 가져가야 하는데 수정이 된다던가 등 문제가 발생하기 쉽기 떄문에 정확히 정하고 가야 한다.