캡슐화 (Encapsulation)와 접근제한자

Seonhee Kim·2023년 4월 25일

study

목록 보기
4/18

캡슐화

  • OOP에서 객체의 필드와(속성) 메서드를(기능) 하나로 묶고 (= 클래스 내부 변수, 메소드를 하나로 패키징)
  • 외부로부터 데이터를 보호하기위해
  • 외부에 불필요하거나 내부적으로만 사용되는 부분을 감추기 위해 특정 속성이나 메서드를 사용자가 사용할 수 없도록 은닉화한것이다.

멤버 변수를 직접 변경할 수 없도록 캡슐처럼 껍데기를 둘러싸는 과정. 캡슐 안에서 특정 로직에 따라 멤버 변수가 적절하게 변경되어야 프로그램이 안전할 수 있기 때문이다.

접근제한자를 통한 캡슐화로 보호된 변수는 getter나 setter 등의 메서드를 통해서만 간접적으로 접근이 가능하다.

캡슐화의 목적

필드와 메서드를 캡슐화하여 보호하는 이유는 외부의 잘못된 사용으로 인한 객체의 손상을 방지하기 위함이다.

캡슐화가 지향하는 바

객체의 응집도와 독립성을 높임으로써 모듈화를 지향한다.
객체의 모듈화가 잘 이루어져있을경우 모듈단위의 재사용 용이
중복되는 코드 -> 모듈로 대체 -> 모듈 내부의 소스만 수정하는 것으로 수정사항 반영 가능 -> 간편한 유지보수

how to encapsulation?

-> 변수,메서드,클래스에 대해 접근제어자를 사용함으로써 캡슐화 할 수 있다.

접근제한자 / 접근제어자

클래스, 멤버변수, 메소드, 생성자에 접근 제한자를 더하여 외부에서 아무나 접근할 수 없도록 한다. (private,protected,public)
생략가능하며 생략 시 자동으로 디폴트(default)로 지정된다.

profile
안녕하세요 ~_~