티스토리 뷰

728x90
반응형

개체 지향 프로그래밍(Object Oriented Programming, OOP) 4대 특성이 있다. 그 중 캡슐화와 추상화에 대해서 간단히 정리하면 아래와 같다.

캡슐화는 개체에 대한 상태와 동작을 하나로 묶는 것을 말한다. 예를 들어, '대학생'이라는 개체를 만들었다고 해보자. 이 개체에는 아래와 같은 상태와 동작이 있다.

- 1학기 수강한 과목 리스트 데이터 : 상태
- 1학기 수강한 과목들 학점 리스트 데이터 : 상태
- 1학기 수강한 과목을 가져오는 메서드 : 동작
- 1학기 수강한 과목의 학점을 가져오는 메서드 : 동작
- 1학기 수강한 과목의 평균 학점을 가져오는 메서드 : 동작

이렇게 하나의 개체에 필요한 정보들을 담은 것을 캡슐화라고 한다.

여기서 마지막 동작인 '평균 학점을 가져오는 메서드'는 해당 대학생의 1학기 평균 학점을 내놓지만 내부구조는 알 수 없다.

내부적으로 평균을 계산하겠지만 각 과목당 '이수학점'에 따라 계산결과가 달라진다. 하지만 사용자는 그러한 '세세한' 부분들을 모른다. 이를 데이터 추상화라고 한다.

728x90
반응형