OOP   Object Oriented Programming   객체지향 프로그래밍

(2023-09-29)

Object Oriented Language, 객체지향 언어


1. 객체지향 프로그래밍 (OOP)객체들 간에 상호작용을 기반으로 한 프로그램 개발 방법론
     - 프로그램을, `절차 및 데이터`로 함께 묶은 객체들의 집합으로 구성
     - 이때, 각 객체는 동적으로 변할 수 있음

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


2. 절차식 프로그래밍, 객체지향 프로그래밍 비교                        ☞ 프로그래밍 패러다임 참조객체지향 프로그래밍절차식 프로그래밍은, 서로 대비가 됨

  ㅇ 절차식 프로그래밍은,
     - 함수(또는 프로시져)가 중심이되고, 데이터는 보조 기능을 함
        . 이때의 프로그래밍은, 함수 따로 데이터 따로 분리된 형태로 다루어야 함

  ㅇ 객체지향 프로그래밍은,
     - 함수가 아닌 객체가 중심이 되어, 절차와 데이터를 함께 묶음
        . 행위/기능/함수 보다는 객체 중심
        . 논리 보다는 데이터를 지향 함 
           .. 공통의 자료구조를 함께 사용하는,
           .. 서로 밀접하게 관련된 여러 함수(메소드)들로 엮어짐

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

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

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

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

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


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

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

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

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

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

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

[프로그래밍 방법론]1. 프로그래밍 기법   2. 구조적 프로그래밍   3. 명령형 프로그래밍   4. 객체지향 프로그래밍   5. 함수형 프로그래밍   6. 프로그램 제어  

[객체지향 프로그래밍]1. 객체지향   2. 객체지향 프로그래밍   3. 메세지   4. 생성자   5. 접근 제한 수식자   6. 추상 클래스   7. 인터페이스  

  1. Top (분류 펼침)      :     1,594개 분류    6,533건 해설

"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"
     [정보통신기술용어해설]       편집·운영 (차재복)