본문 바로가기
JAVA

18. 캡슐화

by seongju.lee 2022. 10. 3.

캡슐화는 크게 아래 두 가지 이유로 필수적이다.

  • 외부로부터 데이터에 직접접근할 수 없도록 보호한다.
  • 외부에는 불필요하고 내부적으로만 사용되는 부분을 감추기 위해서이다.

아래 코드를 통해서 살펴보자.

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