[Design Pattern] Object Orient Basics

Updated:

NCS 정보기술 연구회, 「NCS 정보처리기사 필기」, 한국정보화기술(2020) 참고.

1. 객체지향 개념

Object Orient, OO

실세계의 개체(Entity)를 속성(Attribute)과 메서드(Method)가 결합된 형태의 객체(Object)로 표현한다.
즉, 구현 대상을 하나의 객체로 보고, 객체 간의 관계로 모델링하는 것이 객체지향 개념이다.

객체지향 프로그래밍

Object Oriented Programming, OOP

컴퓨터 프로그램은 여러 개의 독립된 단위인, 객체들의 모임이다.
유연성을 높이고, 변경을 용이하게 함으로써 대규모 소프트웨어의 개발 및 보수가 간편해지고, 프로그램에 대한 직관적인 분석이 가능해진다.

구성요소 특징
Class - attribute, behaviour
- User Define Data Type
Object - 클래스의 instance
- 고유의 데이터(attribute), behaviour 수행
Method - behaviour. 즉, 함수
- 클래스로부터 생성된 객체를 사용하는 방법
Message - Object 간의 통신

2. 객체지향 기법

(1) 캡슐화(Encapsulation)

속성과 메서드를 하나로 묶어서 객체를 구성한다. 종속성을 최소화하여 독립성을 높인다.

(2) 추상화(Abstraction)

현실 세계의 공통 성질을 super class로 묶는다.

(3) 다형성(Polymorphism)

똑같은 이름의 여러 operation(method)을 각자 다르게 정의한다.
EX.

  • overloading: 매개변수 타입과 개수를 다르게 해서 함수 정의
  • overriding: 상속 관계에 있는 상위 클래스(부모 클래스)의 메서드 재정의

(4) 정보은닉(Information Hiding)

다른 클래스에서 특정 정보를 메시지 전달 같은 간접적인 방식을 통해 호출하도록 한다. 무결성을 보장한다.

(5) 상속성(Inheritance)

부모 클래스 -> 추상적(superclass)
자식 클래스 -> 구체적(subclass)

Leave a comment