본문 바로가기
Develop/Java

캡슐화(Encapsulation)

by jaeyoungb 2022. 9. 6.

객체 지향 프로그래밍(OOP)에서 객체의 속성과 기능을 하나로 묶어, 외부에 노출되지 않도록 하는 것이다.

클래스, 변수, 메서드에 대해 접근 제어자를 통해 캡슐화할 수 있다.

 

캡슐화를 사용하는 목적은 외부의 잘못된 사용으로부터 본래 객체의 손상을 방지하기 위함이다.

 

 

캡슐화는 다음 3가지의 특징을 가진다.

  1. 객체의 제공자, 이용자를 정확하게 나누고, 데이터의 접근 권한을 제한하여 정보를 은닉, 보안한다.
  2. 메서드의 구현 방법, 객체 내의 데이터가 바뀌어도 다른 객체에는 영향을 주지 않아 독립성을 보장한다.
  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