[정보처리기사] 객체지향의 구성요소와 개념 (객체/클래스/캡슐화/상속성/다형성)
- 자격증,이론/정보처리기사
- 2020. 5. 20. 14:58
왜인지는 모르겠으나 시나공을 기준으로 2020 정보처리기사에는 객체지향의 주요 개념에 추상화와 정보 은닉이 사라지고 캡슐화/상속성/다형성만 남았다. 하지만, 추상화와 정보은닉도 추가해두려 한다.
객체지향(Object-Oriented) 이란
- 현실 세계를 그대로 모형화
- 소프트웨어 개발 시 객체들을 조립해 작성 가능
- 소프트웨어 재사용 및 확장을 용이, 유지보수가 쉬움
- 주요 요소와 개념에는 객체, 클래스, 캡슐화, 상속, 다형성이 존재함
객체지향의 주요 요소 (객체, 클래스)
객체
객체란, 데이터와 데이터를 처리하는 함수를 캡슐화한 하나의 모듈이다.
- 함수는 객체가 수행하는 기능, 객체가 갖는 데이터를 처리하는 알고리즘
- 함수는 객체가 메시지를 받아 실행해야 할 객체의 구체적 연산을 정의
- 함수를 메소드, 서비스, 동작, 연산이라고도 함
클래스
클래스는 공통된 속성과 연산을 갖는 객체의 집합을 의미한다.
- 인스턴스 : 클래스에 속한 각 객체를 의미
+) 메시지
메시지란 객체들 간에 상호작용을 하는 데 사용되는 수단으로 객체에 어떤 행위를 하도록 지시하는 명령을 말한다.
객체지향의 주요 개념(원칙) (캡슐화, 상속성, 다형성)
캡슐화 (Encapsulation)
- 데이터와 데이터를 처리하는 함수를 하나로 묶은 것
- 캡슐화된 객체의 세부 내용이 은폐되어 변경이 발생해도 오류의 파급효과가 적음
- 캡슐화된 객체들은 재사용이 용이함
- 인터페이스가 단순해지고 객체간의 결합도가 낮아짐
상속성 (Inheritance)
- 이미 정의된 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것
- 하위 클래스는 상위 클래스로부터 받은 속성과 연산 외에도 새로운 것을 첨가할 수 있음
- 클래스의 재사용, 소프트웨어의 재사용을 높이는 중요한 개념
* 다중상속성 : 한개의 클래스가 2개 이상의 클래스로부터 속성과 연산을 상속받는 것
다형성 (Polymorphism)
- 하나의 메시지에 대해 각 객체가 갖고 있는 고유한 방법대로 응답하는 것을 의미
- 하나의 클래스나 메서드가 다양한 방식으로 동작이 가능한 것을 의미
- 오버로딩과 오버라이딩이 존재
+) 정보은닉 (Information Hiding)
- 캡슐화에서 가장 중요한 개념으로 다른 객체에 자신의 정보를 숨기는 것
- 연산만을 통해 접근을 허용함
- 각 객체의 수정이 다른 객체에 주는 Side Effect를 최소화하는 기술
+ ) 추상화 (Abstraction)
- 불필요한 부분을 생략, 객체 속성 중 가장 주용한 것에 중점을 두어 모델화하는 것
- 완전한 시스템 구축 전, 그 시스템과 유사한 모델을 만들어 여러 요인들을 테스트할 수 있음
'자격증,이론 > 정보처리기사' 카테고리의 다른 글
[정보처리기사] 소프트웨어 모듈의 독립성 (결합도, 응집도) (0) | 2020.05.21 |
---|---|
[정보처리기사] 자료구조 (배열/선형리스트/스택/큐/데크/트리/그래프) (0) | 2020.05.21 |
[정보처리기사] UML의 구성요소, 다이어그램의 종류 (0) | 2020.05.18 |
[정보처리기사] 애자일(Agile)의 스크럼, XP 기법 (0) | 2020.05.17 |
[정보처리기사] 소프트웨어 생명주기 모형 (폭포수, 프로토타입, 나선형, 애자일) (0) | 2020.05.16 |