본문 바로가기

정보처리

객체지향 기법의 기본 원칙

728x90

객체지향 기법의 기본 원칙에는 캡슐화, 정보 은닉, 추상화, 상속성, 다형성 등이 있으며, 이 중 구조적 기법과 차별되는 개념은 캡슐화, 상속성, 다형성

1. 캡술화(Encapsulation)
- 캡슐화는 데이터(속성)와 데이터를 처리하는 함수를 하나로 묶는 것을 의미
- 캡슐화된 객체의 세부 내용이 외부에 은폐(정보 은닉)되어, 변경이 발생할 때 오류의 파급 효과가 적음
- 캡슐화된 객체들은 재사용이 용이
- 객체들 간의 메시지를 주고받을 때 각 객체의 세부 내용은 알 필요가 없으므로 인터페이스가 단순해지고, 객체 간의 결합도가 낮아짐

2. 정보 은닉(Information Hiding)
- 캡슐화에서 가장 중요한 개념으로, 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통하여 접근을 허용하는 것
- 각 객체의 수정이 다른 객체에게 주는 영향을 최소화하는 기술
- 외부 객체가 특정 객체의 데이터와 함수를 직접 접근하여 사용하거나 변경하지 못하므로 유지보수와 소프트웨어 확장 시 오류를 최소화할 수 있음

3. 추상화(Abstraction)
- 추상화는 불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두어 개략하는 것, 즉 모델화하는 것
- 인간이 복잡한 문제를 다룰 때 가장 기본적으로 사용하는 방법으로, 완전한 시스템을 구축하기 전에 그 시스템과 유사한 모델을 만들어 여러 가지 요인들을 테스트 할 수 있음
- 추상화는 최소의 비용으로 실제 상황에 대처할 수 있고, 시스템의 구조 및 구성을 가시적으로 확인 가능

4. 상속성(Inheritance)
상속성은 이미 정의된 상위 클래스(부모 클래스)의 모든 속성과 연산을 하위 클래스가 물려받는 것
- 상속성을 이용하면 하위 클래스는 상위 클래스의 모든 속성과 연산을 자신의 클래스 내에서 다시 정의하지 않고서도 즉시 자신의 속성으로 사용할 수 있음
- 하위 클래스는 상위 클래스로부터 상속받은 속성과 연산 외에 새로운 속성과 연산을 첨가하여 사용할 수 있음
- 상위 클래스의 속성과 연산을 하위 클래스가 공유할 수 있기 때문에 객체와 클래스의 재사용, 즉 서프트웨어 재사용(Reuse)을 증대시키는 중요한 개념
- 다중 상속성(Multiple Inheritance) : 한 개의 클래스가 두 개 이상의 상위 클래스로부터 속성과 연산을 상속받는 것

5. 다형성(Polymorphism)
다형성은 메시지에 의해 객체(클래스)가 연산을 수행하게 될 때 하나의 메시지에 대해 각 객체(클래스)가 가지고 있는 고유한 방법(특성)으로 응답할 수 있는 능력을 의미
- 각체(클래스)들은 동일한 메소드명을 사용하며 같은 의미의 응답을 함
- 응용 프로그램 상에서 하나의 함수나 연산자가 두 개 이상의 서로 다른 클래스의 인스턴스들을 같은 클래스에 속한 인스턴스처럼 수행할 수 있도록 하는 것

728x90

'정보처리' 카테고리의 다른 글

순서도와 C언어의 기본  (0) 2024.03.27
아키텍처 스타일  (0) 2024.03.26
객체지향 기법의 생명 주기  (0) 2024.03.26
객체지향 기법의 개요  (0) 2024.03.25
프로그래머  (0) 2024.03.25