클래스 내부에 선언한 메소드 및 속성들 중 외부에 노출시키지 않기 위해, 외부에서 사용하는 것을 허용하지 않을때 사용하는 입력인자이다.
아래는 각 메소드 및 속성에 대한 허용 범위 순서에 따른 접근제한자이다.
모든 경로를 통한 접근을 허용한다.
public class test{
public int value1 = 1;
}
같은 패키지, 다른 패키지라도 상속받은 경우 접근을 허용한다.
public class test{
protected int value2 = 2;
}
default 접근지정자, 같은 패키지에서 접근을 허용한다.
public class test{
default int value3 = 3;
}
가장 범위가 좁은 접근 지정자, 자기 자신의 인스턴스를 통해서만 접근이 가능하다.
public class test{
private int value4 = 4;
}
pacakge javaproject
public class{
public void main(String[] args){
test t1 = new test();
result = t1.value1;
}
}
위와 같이 동일한 패키지 내에서, t1 인스턴스를 생성한다면 public, protected 등에 접근이 가능하다.
단 private로 선언되어있는 메소드에 대해선 접근이 불가능하다.
package com.javaproject
import javaproject.test
public class test2 extends test{
}
위와 같이 다른 패키지라도, package / import를 통해 protected 접근자에 한해 접근이 가능해진다.