객체는 데이터(속성)과 데이터를 처리하는 메소드를 가지고 있다. 객체를 사용하는 입장에서는 이 때 객체를 사용하는 쪽에서 그 객체가 하는 기능만 알면 충분히 객체를 사용할 수 있고, 그 처리 방법에 대해서는 알 필요가 없다. 자바는 클래스의 속성과 메소드에 접근 제한을 걸어 외부에서 직접 속성과 메소드에 접근할 수 없게 만들어 준다. 이것이 캡슐화이다.
객체를 작성할 때 프로그램 작성자는 숨겨야 하는 정보(private)와 공개해야 하는 정보(public)를 구분하여 기술 할 수 있으며 객체를 사용하는 사람은 객체 중에 공개하는 정보에만 접근할 수 있다. 이러한 기법을 제공함으로서 객체의 사용자로부터 정보를 은폐(information hiding)를 할 수 있다.
캡슐화를 통한 정보 은폐의 장점은 다음과 같다.
- 객체에 포함된 정보의 손상과 오용을 막을 수 있다.
- 객체 조작 방법이 바뀌어도 사용 방법은 바뀌지 않는다.
- 데이터가 바뀌어도 다른 객체에 영향을 주지 않아 독립성이 유지된다.
- 처리된 결과만 사용하므로 객체의 이식성이 좋다.
- 객체를 부품화 할 수 있어 새로운 시스템의 구성에 부품처럼 사용할 수 있다.
'자바(Java) > JAVA 2SE' 카테고리의 다른 글
추상클래스와 인터페이스의 사용 (0) | 2010.11.29 |
---|---|
다형성(Polymorphism)이란? (0) | 2010.11.29 |
상속(Inheritance) 이란? (0) | 2010.11.29 |
클래스(Class)란? (0) | 2010.11.29 |
객체지향 프로그래밍(Object-Oriented Programming) 언어의 특징 (0) | 2010.11.29 |