default
임을 뜻함default
일 경우에 접근 제어자를 따로 지정하지 않는다.1)
private
: 같은 클래스 내에서만 접근 가능
2)default
: 같은 패키지 내에서만 접근 가능
3)protected
: 같은 패키지 내에서, 그리고 다른 패키지의 자손클래스에서 접근 가능
4)public
: 접근 제한이 전혀 없다.
따라서 접근 범위는 private
<default
<protected
<public
순으로 보다 많은 접근을 허용한다.
캡슐화(encapsulation)
라고 한다. 1) 메서드에 static
과 abstract
을 함께 사용할 수 없음
: static
메서드는 몸통이 있는 메서드에만 사용할 수 있기 때문
2) 클래스에 abstract
와 final
을 동시에 사용할 수 없음
: 클래스에 사용되는 final
은 클래스를 확장할 수 없다는 의미이고, abstract
은 상속을 통해 완성되어야 한다는 의미이므로 서로 모순되기 때문
3) abstract
메서드의 접근 제어자가 private
일 수 없음
: abstract
메서드는 자손클래스에서 구현하기 위해 접근해야하기 때문
4) 메서드에 private
과 final
을 같이 사용할 필요는 없음
: 접근 제어자가 private
인 메서드는 오버라이딩이 될 수 없기 때문. 즉, 이 둘 중 하나만 사용해도 의미가 충분함