OOP   Object Oriented Programming, Object Oriented Language   객체지향 프로그래밍, 객체지향 언어

(2015-02-10)
1. 객체지향 프로그래밍 (OOP)

  ㅇ 프로그램을 절차 및 데이터로 함께 묶은 객체들의 집합으로 구성
     - 각 객체는 동적으로 변할 수 있음
     - 객체 간에 서로 상호작용할 수 있도록 함

  ㅇ 한편, 객체지향 프로그래밍과 대비되는 것 => 절차식 프로그래밍 언어
     - 절차식프로그래밍언어함수(또는 프로시져)가 중심이되고, 데이터는 보조 기능을 함

  ㅇ 객체지향 프로그래밍을 지원하는 언어 例
     -  C++,  C#,  Java,  Objective-C,  Ada95,  SmallTalk 등

 
2. 객체지향 프로그래밍 주요 특징추상화 (Abstraction)
     - 복잡한 실행 절차나 데이터를 하나로 묶어 단순화시키는 것
        . 데이터 추상화 (Data Abstraction) : 캡슐화, 정보은폐 등
        . 추상 클래스 (Abstract Class) 사용 등

  ㅇ 캡슐화 (Encapsulation) 
     - 데이터 및 메소드논리적으로 하나로 묶어놓는 것

  ㅇ 상속성 (Inheritance)
     - 코드의 재사용 및 효과적인 확장 능력

  ㅇ 다형태성 (Polymorphism)
     - 문맥에 따라 다른 형태나 동작을 할 수 있는 능력

  ㅇ 동적 바인딩 (Dynamic Binding)
     - 실행 중간에도 연결된 속성 변경이 가능


3. 객체지향 프로그래밍 주요 구성 단위클래스 (Class)
     - 비슷한 특성을 가진 객체들의 모델링 (그룹화시키는 틀, 캡슐화한 것)

  ㅇ 객체 (Object)
     - 속성을 가지며 특정한 작업을 수행할 수 있도록 설계된 것

  ㅇ 속성 (Attribute)
     - 객체와 관련된 특성이나 변수 같은 것

  ㅇ 메소드 (Method)
     - 객체에 대해 수행할 수 있는 작업/조작 (객체 외부와의 상호작용을 메소드를 통해 수행)

  ㅇ 연산(Operation) 
     - 객체 자신을 바꾸거나, 외부적으로 바꿈의 효과가 나타나는 것


[객체지향] 1. 객체지향 2. 객체지향 프로그래밍 3. 메세지 4. 생성자 5. 오버라이딩 6. 오버로딩 7. 접근 제한 수식자 8. 추상 클래스
[객체,클래스,인스턴스] [객체지향 원리/특징] [객체지향 모델링]

 
        최근수정     참고문헌