[정보처리기사도전기]#7 객체지향 설계

Ben·2021년 7월 20일
0

2절 객체지향 설계

1. 객체지향 기법

객체지향 기법은 재사용을 가능케 하고, 재사용은 빠른속도의 소프트웨어 개발과 고품질의 프로그램의 생산을 가능하게 한다. 객체 지향 소프트웨어는 그 구성이 분리되어 있기 때문에 유지 보수가 쉽다.

(1) 객체지향의 개용

[1] 1966년 Simula 67 프로그래밍 언어를 개발하면서, 시스템의 한 구성원으로서 한 행위를 행할수 있는 하나의 단위로 객체라는 개념을 사용했다.
[2] 객체 지향 기법에서의 시스템 분석은 문제 영역에서 개체를 정의하고, 정의된 객체들 사이의 상호작용을 분석하는 것이다.
[3] 객체 지향 기법은 복잡한 시스템의 설계를 단순하게 한다. 시스템은 하나 또는 그 이상의 규정된 상태를 갖는 객체들의 집합으로 시각화될 수 있으며, 객체의 상태를 변경시키는 연산은 비교적 쉽게 정의된다.

⭐️ (2) 객체지향의 기본개념

객체 : 속성 + 메소드
속성 : 객체의 상태
메소드 : 연상, 행위(C언어의 함수)
메시지 : 메소드를 자극하는 지시어
클래스 : 공통의 행위와 속성을 갖는 객체들의 모임
인스턴스 : 객체는 클래스에 의해 인스턴스화 된다

1) 객체(Object)

[1] 현실세계에 존재할 수 있는 유형, 무형의 모든 대상을 말한다.
[2] 속성과 메소드로 정의된다.
[3] 객체는 인터페이스인 공유부분을 갖으며, 상태(state)를 가지고 있다

2) 속성(attribute)

[1] 객체가 가지고 있는 특성으로, 현재 상태(객체의 상태)를 의미한다.
[2] 속성은 개체의 상태, 성질, 분류, 식별 수량 등을 표현한다.

3) 클래스(class)

[1] 공통된 행위와 특성을 갖는 객체의 집합이다.
[2] 클래스라는 개념은 객체 타입으로 구현된 소프트웨어를 의미한다. 클래스는 동일한 타입의 객체들의 메소드와 변수들을 정의하는 템플릿(template)이다.

4) 메시지

[1] 한 객체가 다른 객체의 메소드를 부르는 과정으로, 외부에서 하나의 객체에 보내지는 메소드의 요구이다.
[2] 일반 프로그래밍 과정에서 함수 호출에 해당된다.

5) 메소드

[1] 메소드는 객체가 어떻게 동작하는지를 규정하고 속성의 값을 변경시킨다.
[2] 메소드는 메시지에 의해 불리어질 수 있는 제어와 절차적 구성요소이다.

6) 다형성(polymorphism)

[1] 같은 메시지에 대해 각 클래스가 가지고 있는 고유한 방법으로 응답할 수 있는 능력을 의미한다.
[2] 두 개 이상의 클래스에서 똑같은 메시지에 대해 객체가 서로 다르게 반응하는 것이다.
[3] 다형성은 주로 동적바인딩에 의해 실현된다.

정적바인딩 : 실행전, 컴파일시 (C언어 함수)
동적바인딩 : 실행중 (Java 메소드)

7) 상속성

[1] 새로운 클래스를 정의할 때 기존의 클래스들의 속성을 상속받고 필요한 부분을 추가하는 방법이다.
[2] 높은 수준의 개념은 낮은 수준의 개념으로 특정화된다.
[3] 상속은 하위 계층은 상위 계층의 특수화(specialization) 계층이 되며, 상위 계층은 하위 계층의 일반화(generalization) 계층이 된다.

8) 캡슐화

[1] 객체를 정의할 때 서로 관련성이 많은 데이터들과 이와 연관된 함수들을 정보처리에 필요한 기능을 하나로 묶는 것을 말한다.
[2] 데이터, 연산, 다른 객체, 상수 등의 관련된 정보와 그 정보를 처리하는 방법을 하나의 단위로 묶는 것이다.

9) 정보은닉(Information Hiding) : 객체의 상세한 내용을 객체 외부에 철저히 숨기고 단순히 메시지만으로 객체와의 상호작용을 하게 하는 것. 외부에서 알아야 하는 부분만 공개하고 그렇지 않은 부분은 숨김으로써 대상을 단순화시키는 효과가 있다.

profile
프로그램을 만드는것을 업으로 삼은 사람입니다

0개의 댓글