제어자는 클래스, 변수, 메서드의 선언부에 사용되어 부가적인 의미를 부여한다.
public
: 접근 제한이 전혀 없다.protected
: 같은 패키지 내에서, 다른 패키지의 자손 클래스에서 접근이 가능하다default
: 같은 패키지 내에서만 접근이 가능하다.private
: 같은 클래스 내에서만 접근이 가능하다.만약 지정되어 있지 않다면
default
이다
static
, final
, abstract
클래스: public
, default
메서드 & 멤버변수: public
, protected
, default
, private
지역변수: 없다
일반적으로 생성자의 접근 제어자는 클래스의 접근 제어자와 일치 !
클래스 내부에 선언된 데이터를 보호하기 위해서 사용
유효한 값을 유지, 함부로 변경하지 못하도록 접근을 제한
public
, default
, final
, abstract
public
, protected
, default
, private
, final
, abstract
, static
public
, protected
, default
, private
, final
, static
final
🚨 주 의 🚨
- 메서드에
static
과abstract
를 함께 사용할 수 없다.- 클래스에
abstract
와final
을 동시에 사용할 수 없다.abstract
메서드의 접근 제어자가private
일 수 없다.- 메서드에
private
와final
을 같이 사용할 필요는 없다.