접근제어자에 대해 설명하겠습니다.
접근제어자
public, private와 같은 접근 제어자는 클래스나 메서드 또는 필드에 접근할 수 있는 범위를 지정합니다.
전근 제어자를 설정하지 않은 경우도 봤을 겁니다. 접근 제어자를 지정하지 않으면 객체, 메서드, 필드에는 접근할 수 있는 범위가 다른 접근제어자와는 달라집니다.
*class의 접근 제어자: public, 접근 제어자를 지정하지 않음.
*멤버 변수/메서드의 접근 제어자: public, private, protected, 접근 제어자를 지정하지 않음.
클래스 선언 시에 붙이는 접근 제어자는 public 접근 제어자를 지정하지 않은 경우가 있었습니다.
public의 경우에는 모든 클래스, 패키지에서 해당 객체에 접근이 가능함을 의미합니다.
접근 제어자를 지정하지 않는 클래스는 해당 패키지와 하위 패키지에서 객체를 접근할 수 있습니다.
멤버 변수나 메서드의 접근 제어자에 대해서는
public 접근 제어자는 모든 클래스에서 접근이 가능하고,
접근 제어자를 지정하지 않은 경우는 클래스가 포함된 패키지에서만 접근이 가능합니다.
private 접근 제어자를 지정하는 필드와 메서드는 해당 클래스에서만 참조할 수 있습니다.
즉, 외부의 클래스에서는 이 접근 제어자로 지정된 필드나 메서드에는 접근할 수 없습니다.
protected 접근 제어자는 해당 패키지에서 접근이 가능합니다.
접근 제어자의 접근 가능 범위
접근 제어자 | class | package | 하위 클래스 | 전역 |
public | 가능 | 가능 | 가능 | 가능 |
지정X | 가능 | 가능 | 불가능 | 불가능 |
protected | 가능 | 가능 | 가능 | 불가능 |
private | 가능 | 불가능 | 불가능 | 불가능 |
1. public 접근 제어자의 경우에는 해당 class, 클래스의 패키지, 하위 클래스, 전역적으로 접근이 가능합니다.
2. 접근 제어자를 지정 X 경우에는 해당 class, 클래스의 패키지에서만 접근이 가능합니다.
3. protected를 지정하는 경우에는 해당 class, 클래스의 패키지, 하위 클래스에서 접근이 가능합니다.
4. private 접근 제어자는 해당 class에서만 접근이 가능합니다.
*protected 접근 제어자는 상속된 클래스에서 접근이 가능하지만 접근 제어자를 지정하지 않은 경우에는 자식 클래스에서는 접근이 불가능합니다.
'IT > JAVA' 카테고리의 다른 글
[JAVA] 자바 상속 - 간단한 예제 - 사좋배 공유 (0) | 2019.05.01 |
---|---|
[JAVA] 자바 인터페이스(interface) 자바 - 사좋배 공유 (0) | 2019.05.01 |
[JAVA] 자바 클래스란? 클래스의 기본 예제 (예제파트)자바 - 사좋배 공유 (0) | 2019.04.30 |
[JAVA] 자바 클래스란? 클래스의 기본 개념 (개념파트)자바 - 사좋배 공유 (0) | 2019.04.28 |
[JAVA] 자바 객체란 무엇인가?? (0) | 2019.04.28 |