OOP의 개념(Concepts of OOP):

  • 객체(Objects)
  • 클래스(Classes)
  • 데이터 추상화와 캡슐화(Data Abstraction and Encapsulation)
  • 상속(Inheritance)
  • 다형성(Polymorphism )

 

객체지향 프로그래밍의 간략 소개(Briefly on Concepts):

객체Objects(객체)

객체(Objects)는 객체지향 체계에서 기본적인 런타임 실체이다.
프로그래밍 문제는 객체 내의 소통 및 타 객체간 소통이라고 볼 수 있다.
프로그램이 실행되면 객체들은 서로 메세지를 주고 받으며 상호작용한다. 
다른 객체들은 상대방의 데이터나 코드를 잘 알지 못하더라도 상호작용한다.


클래스(Classes)


클래스(class)는 유사 타입의 객체들의 집합이다.
일단 한 클래스가 정의 되면, 그 클래스에 속하는 객체는 무제한 생성될 수 있다.


테이터 추상화와 캡슐화(Data Abstraction and Encapsulation)

추상화(Abstraction)란 배경의 상세나 설명을 포함하지 않고도 근본적 특징을 표현하는 행위를 일컫는다. 클래스는 추상화 개념을 사용하며 추상적인 속성들로 정의되기도 한다.

데이터와 함수를 하나의 단위(클래스)에 저장하는 것은 캡슐화(encapsulation)이다. 외부 세계는 이 데이터에 직접 접근할 수 없으며, 오직 그 클래스 안에 데이터와 함께 저장된 함수만이 접근할 수 있다. 이런(같은 클래스안에 데이터와 저장된) 함수를 메소드(method)라고 한다.


상속(Inheritance)

상속(Inheritance)은 객체가 다른 클래스의 객체의 특징을 물려받을 수 있게 하는 일종의 절차이다. 객체지향 프로그래밍(OOP)에서 상속(inheritance)은 기존의 클래스를 수정하지 않고도 특징을 더 추가할 수 있게 하는 등의 재사용성을 제공한다. 이는 기존의 클래스로 부터 새 클래스를 파생시킴으로서 이루어진다. 파생된 새 클랙스는 (자신과 부모) 클래스의 결합된 특징을 모두 갖는다.


다형성(Polymorphism)

다형성(Polymorphism)이란 한 가지 형태보다 더 많은 형태를 가질 수 있음을 의미한다.
한 동작이 다른 인스턴스에 다른 행동을 일으키게 하는 것이 가능하다. 그 행동은 그 동작에 사용되는 데이터 타입에 의존한다. 다형성은 상속을 구현하는데에 광범위하게 사용된다.


OOP의 이점(Advantages of OOP) 

객체지향 프로그래밍(OOP) 관습적인 접근을 넘어 다음과 같은 이점을 갖고 있다. 

  • OOP는 구체적인 상세 구현을 감추고 그 단위(unit)만 정의한 인터페이스를 갖는 추상적 데이터 타입을 정의하기에 편한 (프로그램을 위한) 모듈화 구조를 제공한다.
  • OOOP는 새 객체가 기존의 것과 다소 다르게 생성되도록 위해 기존의 소스 코드를 관리 수정하기를 쉽게 해준다.
  • OOP는 제공되는 소프트웨어 구성요소가 프로그래머에 의해서 쉽게 수용되고 수정될 수 있는 코드 라이브러리를 위한 좋은 프레임웍을 제공한다.

 

Posted by Scripter
,