캡슐화(Encapsulation)
캡슐화(Encapsulation)은?
- 변수와 그것을 조작하는 메소드를 하나의 클래스로 묶는 것
- 주요 목적은 데이터 보호와 구현 세부 사항의 은닉
캡슐화의 주요 특징
- 데이터 은닉(Data Hiding): 클래스 내부의 데이터를 외부에서 직접 접근하지 못하도록 제한합니다. 이는 주로 데이터를
private또는protected접근 제한자를 사용하여 선언함으로써 달성됩니다. - 메소드를 통한 데이터 접근: 클래스 외부에서는 메소드를 통해서만 데이터에 접근할 수 있습니다. 이러한 메소드는 데이터를 읽거나 변경하는 ‘getter’와 ‘setter’ 메소드로 구현됩니다. 이를 통해 데이터의 무결성을 유지할 수 있습니다.
캡슐화 예시
public class Person {
private String name; // private 변수로 데이터 은닉
// name에 대한 getter 메소드
public String getName() {
return name;
}
// name에 대한 setter 메소드
public void setName(String newName) {
this.name = newName;
}
}
캡슐화의 이점
- 데이터 보호: 외부에서 데이터에 직접 접근할 수 없기 때문에 데이터의 무결성을 유지할 수 있습니다.
- 유지보수 용이: 클래스의 내부 구현을 변경하더라도 해당 클래스의 인터페이스를 사용하는 외부 코드에 영향을 미치지 않습니다.
- 재사용성 증가: 잘 설계된 캡슐화는 코드의 재사용성을 높여줍니다.
정리
- 캡슐화는 변수와 그것을 조작하는 메소드를 하나의 클래스로 묶는 것을 말합니다. 캡슐화를 통해 데이터 무결성을 유지하고 유지보수와 재사용성 측면에서 이점을 가질 수 있습니다.
참고
- ChatGPT-4.0
보완/복습
- 2023.11.29 생성