객체 지향 프로그래밍, 객체 지향 언어 분류, 클래스 기반의 언어 vs 프로토타입 기반의 언어

CODEDRAGON Development/JavaScript, jQuery, ...

반응형

 

 

객체 지향 프로그래밍

·       모든 데이터를 객체 단위로 취급하며, 이 객체 단위를 조합하여 프로그래밍하는 것을 의미합니다

·       객체 지향 프로그래밍은 상속받은 하위 클래스 혹은 객체가 부모 클래스 혹은 부모 객체의 속성과 메서드를 사용할 수 있습니다.

·       외부 사용자에게 내부에서 어떤 동작이 이루어지는 감추는 캡슐화, 상속 등의 객체의 특징을 가지고 있습니다.

 

 

객체 지향 언어 분류

객체 지향 언어는 클래스 기반의 언어와 프로토타입 기반의 언어로 분류가 됩니다.

 

구분

설명

클래스 기반의 언어

·       전통적인 클래스 기반의 언어는 클래스로 객체의 기본적인 형태와 기능을 정의하고 생성자로 인스턴스를 만들어서 사용합니다.

·       모든 인스턴스는 클래스에 정의된 대로 같은 구조이며, 보통 런타임에 변경할 수 없습니다.

·       자바와 C++등이 이 유형에 속합니다.

프로토타입 기반의 언어

·       객체의 자료구조, 메서드를 동적으로 변경하는 것이 가능합니다.

·       자바스크립트가 이 유형에 속합니다.

 

 


 

클래스 기반의 언어 vs 프로토타입 기반의 언어

구분

장점

클래스 기반의 언어

정확성, 안정성, 예측 가능성 등의 관점에서 보면 클래스 기반의 언어가 프로토타입 기반의 언어보다 우수한 결과를 보장합니다.

프로토타입 기반의 언어

프토로타입은 동적으로 자유롭게 객체의 구조와 동작 방식을 바꿀 수 있다는 장점이 있습니다.