캡슐화(Encapsulation)은?

  • 변수와 그것을 조작하는 메소드를 하나의 클래스로 묶는 것
  • 주요 목적은 데이터 보호와 구현 세부 사항의 은닉

캡슐화의 주요 특징

  1. 데이터 은닉(Data Hiding): 클래스 내부의 데이터를 외부에서 직접 접근하지 못하도록 제한합니다. 이는 주로 데이터를 private 또는 protected 접근 제한자를 사용하여 선언함으로써 달성됩니다.
  2. 메소드를 통한 데이터 접근: 클래스 외부에서는 메소드를 통해서만 데이터에 접근할 수 있습니다. 이러한 메소드는 데이터를 읽거나 변경하는 ‘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 생성