티스토리 뷰
접근제한자(Access Modifier)
접근제한자는 특정 데이터를 보호하기 위한 목적으로 사용되어, 클래스, 필드, 생성자, 메소드에서 사용된다.
접근제한자는 클래스, 필드, 생성자, 메소드앞에 붙이는 방법으로 사용가능하며, 총 4가지가 있다. - public, protected, default, private
접근 제한자 사용 예시
public int value = 100;
protected void method() { ... }
default class Class() { ... }
1. public
public 접근 제한자의 적용 대상은 클래스, 필드, 생성자, 메소드이다.
public은 접근 제한자 중 가장 개방적인 제한자이다.
모든 패키지에서 아무런 제한 없이 호출 가능하다.
클래스가 default 접근제한자라면, 생성자가 public이더라도 같은 패키지 내에서만 생성자를 호출 가능하다.
필드와 메소드가 public 접근자일 경우, 클래스 또한 public 접근제한을 가져야만 한다.
2. protected
protected 접근 제한자의 적용 대상은 필드, 생성자, 메소드이다.
protected는 같은 패키지에 속하는 클래스에서 생성자, 필드, 메소드를 호출할 수 있게 하는 접근제한자다.
단, 다른 패키지에 속한 클래스가 해당 클래스의 자식클래스일 경우, 생성자, 필드, 메소드를 호출할 수 있다.
3. default
default 접근 제한자의 적용 대상은 클래스, 필드, 생성자, 메소드이다.
클래스, 생성자, 필드, 메소드 선언시 접근제한자를 생략했다면, 자동으로 default 접근제한을 가진다.
default는 오직 같은 패키지에 속하는 클래스에서만 생성자, 필드, 메소드를 호출할 수 있게 하는 접근제한자다.
같은 패키지내에서는 아무런 제한없이 사용가능하지만, 다른 패키지일 경우에는 사용 불가하다.
4. private
private 접근 제한자의 적용 대상은 필드, 생성자, 메소드이다.
클래스가 private 접근제한자를 가지면, 오직 클래스 내부에서만 생성자를 호출할 수 있으며, 외부에서 객체를 만들 수 없다. (new연산자 사용불가!)
필드와 메소드가 private 접근제한자를 가지면, 오직 클래스 내부에서만 필드와 메소드를 사용할 수 있다.
접근제한자는 public>protected>default>private 순으로 접근 제한이 강화된다.
'JAVA' 카테고리의 다른 글
Getter와 Setter (0) | 2019.09.17 |
---|---|
final 그리고, 상수(Static final) (0) | 2019.09.16 |
싱글톤(Singleton) (0) | 2019.09.16 |
정적 멤버와 인스턴스 멤버 (0) | 2019.09.16 |
클래스 구성 멤버들의 사용 및 오버로딩 (0) | 2019.09.11 |