본문 바로가기

정보처리기사 (필기)/1. 소프트웨어 설계

[정보처리기사] 1-8. 객체지향

1. 객체지향

  • 소프트웨어 개발시에 객체들을 조립해서 작성할 수 있는 기법
  • 소프트웨어의 재사용성 및 확장 용이, 유지보수 쉬움
  • 복잡한 구조를 단계적 계층적으로 표현
  • 구성요소 : 객체, 클래스, 캡슐화, 상속, 다형성 등

2. 객체 (Object)

  • 데이터와 데이터를 처리하는 함수를 묶어놓은 하나의 소프트웨어 모듈
  • 데이터 = 속성, 상태, 변수, 상수, 자료구조
  • 함수 = 메소드, 서비스, 동작, 행위
  • 독립적으로 식별 가능한 이름을 가짐
  • 객체를 가질 수 있는 조건 = 상태 (State)

3. 클래스 (Class)

  • 공통된 속성과 연산을 갖는 객체의 집합, 객체의 일반적인 타입을 의미
  • 각각의 객체들이 갖는 속성과 연산을 정의하고 있는 틀
  • 데이터를 추상화하는 단위
  • 클래스에 속한 각각의 객체 = 인스턴스(Instance)
  • 동일한 클래스에 속한 각각의 개체들은 공통된 속성과 행위를 갖음

4. 캡슐화(Encapsulation)

  • 데이터와 데이터를 처리하는 함수를 하나로 묶은 것을 의미
  • 불필요한 기능 최소화
  • 소프트웨어 개발 비용 절감
  • 개발 속도 향상

5. 상속(Inheritance)

  • 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것
  • 다중 상속 : 한 개의 클래스가 두 개 이상의 상위 클래스로부터 속성과 연산을 상속 받는 것

6. 다형성(Polymorphism)

  • 하나의 메시지에 대해 여러 가지 형태의 응답이 있는 것