객체 지향 프로그래밍(OOP)에서 객체의 속성과 기능을 하나로 묶어, 외부에 노출되지 않도록 하는 것이다.
클래스, 변수, 메서드에 대해 접근 제어자를 통해 캡슐화할 수 있다.
캡슐화를 사용하는 목적은 외부의 잘못된 사용으로부터 본래 객체의 손상을 방지하기 위함이다.
캡슐화는 다음 3가지의 특징을 가진다.
- 객체의 제공자, 이용자를 정확하게 나누고, 데이터의 접근 권한을 제한하여 정보를 은닉, 보안한다.
- 메서드의 구현 방법, 객체 내의 데이터가 바뀌어도 다른 객체에는 영향을 주지 않아 독립성을 보장한다.
- 클래스의 결합도가 낮아지기 때문에, 재사용이 용이하다.
그렇다면, 캡슐화를 사용하기 위한 접근 제어자에는 어떤 것들이 있고, 특징은 어떨까?
접근 제어자 | 클래스 내로부터의 접근을 허용하는가 |
패키지 내로부터의 접근을 허용하는가 |
다른 패키지의 하위 클래스로부터의 접근을 허용하는가 | 패키지 외로부터의 접근을 허용하는가 |
private | O | X | X | X |
default | O | O | X | X |
protected | O | O | O | X |
public | O | O | O | O |
접근 제어자를 명시해주지 않으면, 기본적으로 default로 지정된다.
접근 제어자를 사용할 수 있는 곳은 클래스, 멤버 변수, 메서드, 생성자이다.
Getter & Setter 메서드
private으로 접근 권한을 차단한 변수를 Getter & Setter 메서드로 저장, 수정, 출력할 수 있다.
다음 예시를 통해, Getter & Setter의 사용법을 파악해보자.
추가적으로 알게 되는 내용들을 덧붙일 예정입니다.
피드백 환영합니다.
(참고 : http://wiki.hash.kr/index.php/%EC%BA%A1%EC%8A%90%ED%99%94)
'Develop > Java' 카테고리의 다른 글
추상화(Abstraction) (0) | 2022.09.10 |
---|---|
다형성(Polymorphism) (0) | 2022.09.10 |
상속(Inheritance) (0) | 2022.09.06 |
구분자를 기준으로 문자열 분리하는 방법 (0) | 2022.09.06 |
내부 클래스란? (0) | 2022.09.05 |