접근제어자란?

다른 디렉토리 패키지에 있는것들을 임포트해서 그 기능들을 사용하려고 할때, 접근가능의 경우의 수를 분류한게 접근 제어자이다.


1.클래스 멤버에 대한 접근제어자(필드,메소드)


public (제한없이 접근가능)

공통,공용의 즉 다른패키지를 임포트했을시에,public으로 설정할시 제한없음으로 자유롭게 사용가능


protected (상속했을 경우 접근가능)

보호된,부모로 부터 보호(상속), 다른패키지의 서브클래스를 상속했을시에는 사용가능


default (같은패키지만 접근가능)

기본값,즉 자기 자신(패키지).자기 자신(패키지)에 포함된 것들만 사용가능 그리고 자기자신을 나타내기때문에 제어자를 생략할 경우 디폴트 형식이됨.


private (같은 클래스만 접근가능)

개개인, 분류, 클래스마다 분류시킴 즉 자기 자신(패키지)에 포함된 하나의 클래스에서만 제한없이 사용가능


default와 private는 자기 자신(패키지)내의 작동방법에 대해서 분류해놓은 것이고,

public과 protected는 다른 패키지를 임포트했을시에, 작동방식을 구분지어둔것.



2.클래스 접근제어자

접근 제어자는 총 2개로 public과 default이다.


public (제한없이 접근가능)

모든 소스코드의 파일명은 public 클래스명과 동일해야한다.

즉 소스코드내에는 하나의 public 클래스가 존재한다. ->main 클래스


default (같은패키지만 접근가능)

default는 접근 제어자를 붙이지 않은 경우 default가 된다.

만약에 다른 패키지를 임포트 했을시에는, default 클래스의 객체생성이 불가능하다.