캡슐화(encapsulation)
2024년 3월 8일
-
클래스(Class)나 멤버, 주로 멤버(클래스 블록)에 접근제어자(Access modifier)를 사용하는 이유는 클래스(Class)의 내부에 선언된 데이터를 보호하기 위해서다.
-
데이터가 유효한값을 유지하도록, 또는 비밀번호와 같은 데이터를 외부에서 함부로 변경하지 못하도록 하기 위해서는 외부로부터의 접근을 제한하는 것이 필요하다.
-
이것은 객체지향개념의 캡슐화(encapsulation)라고 한다.
-
외부에서 접근할 필요가 없는 멤버들을 private로 지정하여 외부에 노출시키지 않음으로써 복잡성을 줄일 수 있으며 이것 역시 캡슐화에 해당된다.
-
private인 변수(Variable)의 값을 읽고 변경할수 있도록 public 메서드(Method)인 Getter and Setter를 제공함으로써 간접적으로 멤버변수의 값을 다룰 수 있도록 하는것이 바람직하다.
-
보통 Getter and Setter, setter(매개변수에 지정된 값을 검사하여 조건에 맞는 값일때만 멤버 변수(Member Variable)의 값을 변경하는 메소드)와 getter(멤버변수의 값을 반환하는 메소드)가 있다.