-->

[정보처리기사] 객체지향의 구성요소와 개념 (객체/클래스/캡슐화/상속성/다형성)

반응형

왜인지는 모르겠으나 시나공을 기준으로 2020 정보처리기사에는 객체지향의 주요 개념에 추상화와 정보 은닉이 사라지고 캡슐화/상속성/다형성만 남았다. 하지만, 추상화와 정보은닉도 추가해두려 한다.

 

 

객체지향(Object-Oriented) 이란

- 현실 세계를 그대로 모형화

- 소프트웨어 개발 시 객체들을 조립해 작성 가능

- 소프트웨어 재사용 및 확장을 용이, 유지보수가 쉬움

- 주요 요소와 개념에는 객체, 클래스, 캡슐화, 상속, 다형성이 존재함

 

 

객체지향의 주요 요소 (객체, 클래스)

객체

객체란, 데이터와 데이터를 처리하는 함수를 캡슐화한 하나의 모듈이다.

 

- 함수는 객체가 수행하는 기능, 객체가 갖는 데이터를 처리하는 알고리즘

- 함수는 객체가 메시지를 받아 실행해야 할 객체의 구체적 연산을 정의

- 함수를 메소드, 서비스, 동작, 연산이라고도 함

 

클래스

클래스는 공통된 속성과 연산을 갖는 객체의 집합을 의미한다.

 

- 인스턴스 : 클래스에 속한 각 객체를 의미

 

+) 메시지

메시지란 객체들 간에 상호작용을 하는 데 사용되는 수단으로 객체에 어떤 행위를 하도록 지시하는 명령을 말한다.

 

 

객체지향의 주요 개념(원칙) (캡슐화, 상속성, 다형성)

캡슐화 (Encapsulation)

- 데이터와 데이터를 처리하는 함수를 하나로 묶은 것

- 캡슐화된 객체의 세부 내용이 은폐되어 변경이 발생해도 오류의 파급효과가 적음

- 캡슐화된 객체들은 재사용이 용이

- 인터페이스가 단순해지고 객체간의 결합도가 낮아짐

 

상속성 (Inheritance)

- 이미 정의된 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것

- 하위 클래스는 상위 클래스로부터 받은 속성과 연산 외에도 새로운 것을 첨가할 수 있음

- 클래스의 재사용, 소프트웨어의 재사용을 높이는 중요한 개념

 

* 다중상속성 : 한개의 클래스가 2개 이상의 클래스로부터 속성과 연산을 상속받는 것

 

다형성 (Polymorphism)

- 하나의 메시지에 대해 각 객체가 갖고 있는 고유한 방법대로 응답하는 것을 의미

- 하나의 클래스나 메서드가 다양한 방식으로 동작이 가능한 것을 의미

- 오버로딩과 오버라이딩이 존재

 

+) 정보은닉 (Information Hiding)

- 캡슐화에서 가장 중요한 개념으로 다른 객체에 자신의 정보를 숨기는 것

- 연산만을 통해 접근을 허용함

- 각 객체의 수정이 다른 객체에 주는 Side Effect를 최소화하는 기술

 

+ ) 추상화 (Abstraction)

- 불필요한 부분을 생략, 객체 속성 중 가장 주용한 것에 중점을 두어 모델화하는 것

- 완전한 시스템 구축 전, 그 시스템과 유사한 모델을 만들어 여러 요인들을 테스트할 수 있음

 

댓글

Designed by JB FACTORY