본문 바로가기

JAVA

캡슐화란?

캡슐화(Encapsulation)의 목적은 정보(자원)의 보호 목적에서 만들어진 개념이다. 자바 언어에서는 캡슐화를 지원하기 위해서 4가지의 접근 제어 지시자가 존재한다. private, protected, (default), public이 있다. 접근 제어 지시자는 클래스, 인스턴스 변수, 인스턴스 메소드 앞에 존재함으로써 접근을 제어할수 있다.

public은 해당 요소를 누구나 사용할 수 있다는 뜻이며, private 키워드는 타입을 만든 사람이 아니면 메소드 내부 요소에 접근 할 수 없다. protected는 상속을 받은 자식 클래스에서만 접근 할수 있으며, (default)는 팩키지 내의 클래스에서만 접근 할 수 있다.

하나의 예를 들어서 설명 하도록 하자.
public class Car{
    private Engine engine;
    protected Handle handle;
   
    public Car(){
        //생성자
    }
}
위에서 class 앞의 public이 존재하기 때문에 이 클래스는 누구나 사용할 수 있는 클래스가 된다. 인스턴스 변수인 engine은 private이기 때문에 Car 클래스 안의 메소드에서만 접근이 가능하다. Car 이외의 클래스에서 접근은 불가능하다. handle은 protected이기 때문에 Car를 상속받은 클래스에서는 접근이 가능하게 되는 것이다.

접근이 커지는 순서대로 나열하면 private(클래스 안) < protected(하위 클래스까지) < (default)(팩키지 내의 클래스까지) < public(누구든지) 의 순서가 된다.

'JAVA' 카테고리의 다른 글

상속(inheritance)  (0) 2011.07.28
객체와 클래스(2)  (0) 2011.07.25
C와 JAVA 구조체 비교  (0) 2011.07.22
객체와 클래스(1)  (0) 2011.07.21
연습문제(2)  (0) 2011.07.21