객체지향

개념
실 세계의 개체(Entity)를 속성(Attribute)와 메소드(Method)가 결합된 형태의 객체(Object)로 표현하는 개념 실 세계의 문제영역에 대한 표현을 소프트웨어 해결 영역으로 mapping 하는 방법으로 객체간에 메시지를 주고받는 형태로 시스템 구성

1. 객체지향의 특징

  가. 모형의 적합성

  • 객체중심 모형은 우리의 사고 방식과 유사
  • 뚜렷하게 구별되는 객체로 나누고 객체들의 메시지 패싱이 모여 프로그램이 됨

  나. 재사용 용이

  • openness, closeness를 다 갖춘 재사용 단위
  • 상속(inheritance), 다형성(polymorphism)

  다. Time – to – market

  • 종래의 폭포수모형은 단계가 길고 문서 작업이 많음
  • 클래스의 재사용과 확장에 의한 빠른 개발이 가능

  라. 설계와 프로그램의 매핑

  • 개발 각 단계의 전환이 자연스럽고 신속

 

  라. 객체지향 시스템의 구조

2. 재사용성과 객체표현기법, 객체지향의 정의

  가. 객체지향(Object Oriented)의 정의

  • 실 세계의 개체(Entity)를 속성(Attribute)와 메소드(Method)가 결합된 형태의 객체(Object)로 표현하는 개념
  • 실 세계의 문제영역에 대한 표현을 소프트웨어 해결 영역으로 mapping 하는 방법으로 객체간에 메시지를 주고받는 형태로 시스템 구성

  나. 객체지향의 등장배경

  • 소프트웨어 위기 해결을 위한 대안 필요성 증대
  • 컴퓨팅 환경에 대한 보다 많은 기능(Functionality), 단순성, 사용편의성에 대한 사용자 요구 증대

 

3. 객체지향의 개념도 및 구성요소

  가. 객체지향의 개념도

     - 클래스 간의 릴레이션, 객체간의 상호작용은 메시지를 통해서 이루어 짐.

 

  나. 객체지향(Object Oriented)의 구성요소

구성요소

상 세 내 용

객체

(Object)

데이터(실체)와 그 데이터에 관련되는 동작(절차, 방법, 기능)을 모두 포함한 개념

메시지(Message)

객체들 간의 통신은 메시지를 통해 이루어지고 메시지는 수신받을 객체(Receiver)와 수행 메소드명, Argument로 구성 됨

클래스

(Class)

동일 성격의 객체 그룹을 구현

객체는 클래스의 한 인스턴스(instance)가 됨

캡슐화

(Encapsulation)

속성(데이터)과 메소드(연산)을 하나로 묶어서

객체로 구성하는 것

개념도

특징

클래스를 선언하고 그 클래스를 구성하는

객체에 대하여

“public” 선언 시 외부에서 사용가능,

“private” 선언 시 불가

장점

-Readability향상: 유지보수 용이

-재사용성이 높은 소프트웨어 개발

-정보은닉(Information Hiding)으로 내부자료에

대한 일괄성 유지

-객체간 인터페이스(메시지)를 이용하여 종속성 최소화

추상화

(Abstraction)

공통 성질을 추출하여 슈퍼클래스를 설정하는 것

1) 기능추상화

- 클래스 내 메소드를 정의(obj.getName())

2) 데이터추상화

- 객체 클래스 자체를 데이터 타입으로 사용(String,  Class)

3) 제어추상화

- 제어행위에 대한 개념화, 명령 및 이벤트(if, for, while)

개념도

 

특징

객체지향 언어에서는 클래스를 이용함으로써

데이터와 프로세스를 함께 추상화의 구조에 넣어

보다 완벽한 추상화 실현

장점

객체중심의 안정된 모델 구축

실세계를 자연스럽게 표현

분석의 초점이 명확

다형성

(Polymorphism)

동일한 이름의 오퍼레이션(메소드)이 각 클래스마다

다른 사양으로 정의될 수 있다는 것을 말함

종류

Overloading

메소드의 이름은 같으나 argument나

retrun type이 다른 경우

Overriding

Argument와 return type 같은 경우

정보은닉

(Information Hiding)

캡슐화된 항목들이 다른객체(Object)에게 보이지 않게 하는것

메시지 전달에 의해 다른 클래스내의 메소드가 호출됨

상속성

(Inheritance)

하위 클래스에게 자신의 속성과 메소드를 사용할 수 있도록

허용하는 것

단일

부모와 자식 클래스 간의 관계가

수퍼클래스와 서브클래스로 유지

다중

하나의 클래스가

하나 이상의 클래스로부터 상속 받음

반복

같은 조부모 클래스로부터

상속 받은 두 부모 클래스로부터 상속 받는 것

댓글