캡슐화는 크게 아래 두 가지 이유로 필수적이다.
- 외부로부터 데이터에 직접접근할 수 없도록 보호한다.
- 외부에는 불필요하고 내부적으로만 사용되는 부분을 감추기 위해서이다.
아래 코드를 통해서 살펴보자.
public class Time {
// private을 사용하여 외부로부터 멤버변수에 직접 접근을 제한한다.
private int hour;
private int minute;
private int second;
// 메서드를 활용하여 제어문을 통해서 멤버변수에 접근하도록 허용한다.
public void setHour(int hour) {
if(isNotVaildHour(hour)) return;
this.hour = hour;
}
// private을 통하여 내부에서만 사용하는 부분을 감춘다.
private boolean isNotVaildHour(int hour){
return hour < 0 || hour > 23;
}
public int getHour() {return hour;}
}
위 코드를 통해 알 수 있는 내용은 아래와 같다.
- 멤버변수에 직접 접근을 막을 수 있다.
- 메서드를 통해 멤버변수에 간접 접근하는데 있어 데이터를 올바른 지 판별할 수 있다.
- 내부에서만 필요한 기능에 대해서 private 키워드를 이용한다.
- 또한 이에 대한 장점은 private 메서드를 수정했을 때, 해당 메서드가 클래스 내부에서만 필요한 기능인지 아닌지를 판별할 수 있으며, 이로 인해 테스트를 클래스 내부에서만 진행할 수 있다는 이점도 있다.
'JAVA' 카테고리의 다른 글
20. 다형성의 장점 (0) | 2022.11.10 |
---|---|
19. 다형성, 참조변수의 형변환 (0) | 2022.11.10 |
17. 제어자 (0) | 2022.10.03 |
16. super()와 super (0) | 2022.10.02 |
15. 오버라이딩 (0) | 2022.10.02 |