객체지향 프로그래밍 (Object-Oriented Programming) 캡슐화 (Encapsulation)

캡슐화(Encapsulation)는 클래스의 꼭 필요한 부분만 (필드 또는 메소드) 외부에 접근할 수 있도록 공개하고 그 외에는 접근하지 못하도록 접근을 차단하는 정보은닉(Inforamion Hiding)의 개념이다. 접근 제어자(Access Modifier)라고 하는 키워드를 통해서 클래스의 정보를 통제할 수 있다. 접근 제어자의 종류에는 private, protected, public이 있고 아무것도 명시 하지 않을 수도 있다.


접근 제어자는 필드와 메소드에 사용할 수 있는데, 기본적으로 필드는 private, protected를 쓰도록 하고 굳이 public으로 필드에 접근 시키고 싶다면 getter/setter 메소드를 만들어서 접근하도록 한다. 메소드는 필요에 따라 다 쓰면 된다.


명칭에서도 의미하듯이 private는 내부에서만 사용이 가능하고 외부에서는 접근이 제한된다. public은 외부에서 접근이 가능하다.

protected는 다른 클래스에서 참조할 때 private로 작용하고 상속(Inheritance)받은 클래스에서는 public 으로 동작되게 한다.


기존 필드에 있는 매개변수 들은 이름 왼쪽에 private를 모두 붙여주고, getter/setter 메소드에는 모두 public을 붙여주면 된다.

getter/setter 메소드는 필드에 선언된 변수(Variable)에 값을 저장하거나(set) 가져오는(get) 역할을 하는 메소드이다.


this.variable 처럼 this. 키워드는 클래스 자신의 객체를 의미하는 키워드이다. 위의 예에서는 setter에서 파라미터로 넘겨오는 변수와 필드에 있는 변수를 구분시켜준다.


좀더 부가적인 개념인 POJO에 대한 글도 함께 읽기를 권고한다.

+ Recent posts