ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 객체 지향 프로그래밍
    예전 글들/C, C++ 2011. 2. 11. 13:40
    반응형

    1.      컴퓨터 프로그래밍의 패러다임의 하나.

    A.     컴퓨터 프로그램을 명령어 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 객체들의 모임으로 파악하고자 하는 것.

    B.      각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다.

    C.      장점:

                             i.         프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다.

                            ii.         프로그래밍을 더 배우기 쉽게 하고 소프트웨어 개발과 보수를 간편하게 하며, 보다 직관적인 코드 분석을 가능

    D.     지나친 프로그램의 객체화 경향은 실제 세계의 모습을 그대로 반영하지 못한다는 비판을 받기도 한다.

    2.      기본 구성 요소

    A.     클래스(Class)

                             i.         같은 종류(또는 문제 해결을 위한)의 집단에 속하는 속성(attribute)과 행위(behavior)를 정의한 것으로 객체지향 프로그램의 기본적인 사용자 정의 데이터형(user define data type)

                            ii.         프로그래머가 아니지만 해결해야 할 문제가 속하는 영역에 종사하는 사람이라면 사용할 수 있고, 다른 클래스 또는 외부 요소와 독립적으로 디자인

    B.      객체(Object)

                             i.         클래스의 인스턴스(실제로 메모리상에 할당된 것)이다. 객체는 자신 고유의 속성(attribute)을 가지며 클래스에서 정의한 행위(behavior)를 수행할 수 있다.

                            ii.         객체의 행위는 클래스에 정의된 행위에 대한 정의를 공유함으로써 메모리를 경제적으로 사용

    C.      메서드(Method), 메시지(Message)

                             i.         클래스로부터 생성된 객체를 사용하는 방법으로서 객체에 명령을 내리는 메시지

                            ii.         메서드는 한 객체의 서브루틴(subroutine)형태로 객체의 속성을 조작하는 데 사용된다. 또 객체 간의 통신은 메시지를 통해 이루어 진다.

    3.      특징

    A.     캡슐화(Encapsulation)

                             i.         하나의 문제를 해결하기 위한 데이터와 메서드를 하나의 단위로 묶는다는 것

                            ii.         클래스의 내부 정의에 대해 외부에서 볼 수 없도록 하는 것

    1.      클래스에 정의된 메서드(Interface)만 볼(사용할) 수 있으며, 내부의 속성과 구현은 볼 수 없게 디자인한다.

                           iii.         객체를 외부의 부정적인 방법(또는 잘못된 방법)으로 사용하는 것을 방지하며, 사용자가 클래스의 내부에 대해 알지 못하는 상황에서도 외부에 공개된 메서드(Interface)를 통해 객체사용을 가능하게 해준다.

    B.      추상화(Abstraction)

                             i.         모델(Object)의 자세한 성질을 무시하고(숨기고) 그들의 일반적인 성질을 나타낸다는 것

                            ii.         일반적으로 클래스는 클래스로 표현할 서브 클래스(또는 객체)의 공통적인 성질과 행위를 일반화하여 디자인 되게 되며 그로부터 생성된 객체는 자신의 고유의 성질을 가진다.

    C.      다형성(Polymorphism)

                             i.         같은 메시지에 대해 클래스에 따라 다른 행위를 하게 되는 특징

                            ii.         일반적으로 같은 이름을 가지는 메서드에 대해 인자(Argument)의 개수와 데이터형(Data Type)에 따라 수행되는 행위가 달라짐을 의미

                           iii.         다형성을 통해서 사용자는 약속된 인터페이스를 따르는 서로 다른 객체를 같은 방식으로 사용 할 수 있게 된다.

    D.     상속(Inheritance)

                             i.         기존에 있던 클래스를 바탕으로(, 기존의 클래스로부터 상속 받음) 다른 특성을 추가해 새로운 클래스를 만들 수 있다.

    E.      메시지 전달(Message Passing)

                             i.         객체가 보내는 데이터를 사용하는 과정에서 다른 객체 또는 원하는 메소드에 다른 객체를 요청한다.



    출처 위키피디아

    반응형

    댓글

Designed by Tistory.