본문 바로가기
JAVA

접근 제어자와 캡슐화

by winteringg 2022. 8. 28.

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

댓글