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

(2018-03-02)
1. 객체지향 프로그래밍 (OOP)프로그램을 `절차 및 데이터`로 함께 묶은 객체들의 집합으로 구성
     - 각 객체는 동적으로 변할 수 있음
     - 객체 간에 서로 상호작용할 수 있도록 함

  ㅇ 한편, 
     - 객체지향 프로그래밍과 대비되는 것 => 절차식 프로그래밍 언어
        . 절차식 프로그래밍함수(또는 프로시져)가 중심이되고, 데이터는 보조 기능을 함
           .. 이때의 프로그래밍은, 함수 따로 데이터 따로 분리된 형태로 다루어야 함
        . 객체지향 프로그래밍은, 함수가 아닌 객체가 중심이 되어, 절차와 데이터를 함께 묶음 

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

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

  ㅇ 캡슐화 (Encapsulation)  : 정보 은닉
     - 복잡함을 감추고, 상호 영향을 작게하는 것
        . 데이터 및 메소드논리적으로 하나로 묶어놓는 것

  ㅇ 상속성 (Inheritance)    : 재사용/확장 능력 제고
     - 코드의 재사용(reuse) 및 효과적인 확장(extend) 능력

  ㅇ 다형태성 (Polymorphism) : 사용 편의성이 좋아짐
     - 문맥에 따라 다른 형태나 동작을 할 수 있는 능력

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


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

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

  ㅇ 인스턴스 (Instance)
     - 만일 객체(Object)가 값을 갖을 경우 보통 인스턴스(Instance)라고 함

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

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

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


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

 
        최근수정     요약목록(시험중)     참고문헌