1. 접근 제어자 (Access Modifier)
1) 외부로부터 데이터를 보호하기 위해 클래스 및 클래스의 구성 멤버에 대한 접근을 제한하는 역할.
2) 다른 패키지에서 클래스를 사용하지 못하도록 막을 수 있음. (클래스 제한)
3) 클래스로부터 객체를 생성하지 못하도록 막을 수 있음. (생성자 제한)
4) 특정 필드와 메소드를 숨김 처리할 수 있음. (필드와 메소드 제한)
- public : 외부 클래스 어디에서나 접근 가능함. 접근 제한이 없음.
- protected : 같은 패키지 내부, 그리고 다른 패키지 상속 관계의 자식 클래스에서 접근 가능함.
- (default, 아무것도 표시 안하는 것) : 같은 패키지 내부에서만 접근 가능함.
- private : 같은 클래스 내에서만 접근 가능함.
접근 제어자 | 같은 클래스 | 같은 패키지 | 자식 클래스 | 외부 어디서나 |
public | O | O | O | O |
protected | O | O | O | |
default | O | O | ||
private | O |
2. 캡슐화 (Encapsulation, 은닉화)
1) 외부로부터 데이터를 보호하기 위해 클래스 및 클래스의 구성 멤버에 대한 접근을 제한하기 위해 사용.
- 접근 제어자를 private 으로 하여 외부에서 직접 접근하지 못하고 우회하여 접근하도록 해줘야 함. (public getter/public setter 메서드 사용하여 접근하도록)
- 메서드를 통해서 간접 접근을 허용하고 메서드를 통해 값 설정에 제한을 둠.
2) 외부에는 불필요하며 내부적으로만 사용되는 부분을 감추기 위해서 사용.
3) 아무나 쉽게 데이터를 변경하지 못하도록 사용.
참고 : [한빛미디어] 이것이 자바다 (신용권의 Java 프로그래밍 정복) Chapter 6.클래스
'JAVA' 카테고리의 다른 글
상속과 포함 (0) | 2022.08.28 |
---|---|
static 멤버 & 인스턴스 멤버 (0) | 2022.08.28 |
클래스 구성 요소 (필드, 생성자, 메소드) (0) | 2022.08.28 |
생성자 this() vs 참조변수 this (0) | 2022.08.28 |
메서드 (0) | 2022.08.28 |
댓글