접근 지정자는 클래스나 멤버들을 다른 클래스에서 접근해도 되는지 여부를 지정하는 지시어 입니다.
자바에는 다음 4가지 접근 지정자가 있습니다.
Java 에서는 객체를 캡슐화 하기 때문에 객체에 다른 객체가 접근하는 것을 허용할지, 하지 않을지 지정해야 할 필요가 있기 때문에 접근 지정자를 사용합니다.
캡슐화 - 자바에서의 객체를 class라는 캡슐로 싸서 보호.
외부 접근으로부터 내부를 보호하고, 노출되어선 안되는 정보를 은닉.
다른 클래스에서 해당 클래스를 활용 가능한지에 대핸 허용여부를 지정합니다.
패키지 상관없이 다른 어떤 클래스에서도 사용이 가능하다.
같은 패키지 내의 클래스들에게만 활용을 허용한다.
클래스 멤버에 대한 접근 지정자로는 public, private, protected, 디폴트 가 있습니다.
공개의 범위는 private < 디폴트 < protected < public 순으로 넓어집니다.
비공개를 지시하는 것으로, 클래스 내의 멤버틀에게만 접근이 허용됩니다.
같은 패키지나, 상속받은 서브클래스에서도 접근이 불가합니다.
접근지정자가 생략된 멤버로, 동일한 패키지 내에 있는 클래스들만 디폴트 멤버를 자유롭게 접근 가능합니다.
보호된 공개를 지시하는 것으로, 2가지 유형의 클래스에만 접근을 허용합니다.
1) 같은 패키지의 모든 클래스에 접근이 허용된다.
2) 다른 패키지에 있더라도 자식클래스의 경우, 접근이 허용된다.
패키지를 막론하고 모든 클래스들이 접근 가능합니다.