1. Private
정의
- 접근제어자가 private으로 설정되었다면 private이 붙은 변수, 메소드는 해당 클래스에서만 접근 가능
- 위의 예제의 secret 변수와 getSecret 메소드는 오직 AcessModifier 클래스에서만 접근이 가능 👉 다른 클래스에서는 접근이 불가능
2. Default
정의
- 접근제어자를 별도로 설정하지 않는다면 접근 제어자가 없는 변수, 메소드는 default 접근제어자가 되어 해당 패키지 내에서만 접근이 가능
- 1, 2 클래스 둘다 패키지가 동일하기 때문에 접근 가능
3. Protected
정의
- protected가 붙은 변수, 메소드는 동일 패키지내의 클래스 또는 해당 클래스를 상속받은 외부 패키지의 클래스에서 접근 가능
- 1, 2 클래스의 패키지명은 다르지만 1 클래스의 변수가 protected로 설정 되었기 때문에 2 클래스에서 접근이 가능
- 만일 , 1 클래스의 lastname 접근제어자가 protected가 아닌 default 접근제어자였다면, 컴파일 오류 뜸
4. Public
정의
- public 접근 제어자가 붙은 변수, 메소드는 어떤 클래스에서라도 접근이 가능
접근제어자 장점
- 접근제어자를 이용하면 프로그래머의 코딩 실수 방지 가능
- 기타 위험요소를 제거할 수 있음
출처 : https://wikidocs.net/232
정리
출처 : @yoonsun , 2015. 08. 28 , https://brunch.co.kr/@yoonsung/1