jineecode

객체 지향 프로그래밍 언어 본문

지식

객체 지향 프로그래밍 언어

지니코딩 2021. 2. 15. 10:52

개요: JS가 객체 지향 프로그래밍 언어인 줄 알았는데 아니라는 소리를 듣고 알아보았다.


 

1. 객체 지향 프로그래밍Object-Oriented Programming 언어의 개요

 소프트웨어를 개발할 때 객체들을 조립해서 프로그램을 작성할 수 있도록 한 프로그래밍 기법.

 

2. 객체지향 프로그래밍의 장 단점

 상속을 통한 재사용과 시스템의 확장이 용이.

 코드의 재활용성 높음

 대형 프로그램의 작성 용이

 

 정형화된 분석 및 설계 방법이 없음

 실행 속도가 느림

 

3. 객체지향 프로그래밍의 종류 

언어 특징
C++ C언어에 객체지향 개념을 적용한 언어
모든 문제를 객체로 모델링하여 표현
C# Microsoft에서 개발한 객체지향 프로그래밍 언어
C++, JAVA와 문법 비슷
불안전 코드와 같은 기술을 통해 플랫폼간 상호 운용성 확보
JAVA 분산 네트워크 환경에 적용이 가능
멀티스레드 기능 제공, 여러 작업을 동시에 처리 가능
운영체제 및 하드웨어에 독립적, 이식성이 강함
캡슐화 가능
재사용성 높음
Delphi 파스칼 문법.
WINDOW운영체제에서 모든 부분을 프로그래밍 할 수 있음
높은 생산성과 간결하 코드가 대표적
Smalltalk 1세대 객체지향 프로그래밍 언어
최초로 GUI를 제공

 

 

4. 언어의 구성 요소

*객체(Object)

 -독립적으로 식별 가능한 이름을 갖고 있음.

 -객체가 가질 수 있는 조건인 상태(state)는 일반적으로 시간에 따라 변함

 -객체와 객체는 상호 연관성에 의한 관계가 형성됨

 -객체가 반응할 수 있는 메시지의 집합을 method라고 하며 객체는 method의 특징을 나타냄

 -객체는 일정한 기억장소를 가지고 있음

 

*클래스(Class)

 -공통된 속성과 연산을 갖는 객체의 집합 

 -객체지향 프로그램에서 데이터를 추상화하는 단위

 -객체들이 갖는 속성과 메서드를 정의하고 있는 틀

 -슈퍼클래스는 특정 클래스의 부모 클래스

 -서브 클래스는 특정 클래스의 하위 클래스

 

*인스턴스(instance)

 -클래스에 속한 각각의 객체

 -클래스로부터 새로운 객체를 생성하는 것을 인스턴스화라고 함

 

*메서드(method)

 -클래스로부터 생성된 객체를 사용하는 방법

 -전통적 시스템의 함수 또는 프로시저에 해당하는 연산

 

*메시지(message)

 -객체에게 어떤 행위를 하도록 지시하기 위한 방법

 

 

5. 객체 지향 프로그래밍 언어의 특징

특징 설명
캡슐화 데이터와 데이터를 처리하는 함수를 하나로 묶는 것.

캡슐화된 객체의 세부 내용이 외부에 은폐되어 변경이 발생할 때 오류의 파급효과가 적음

캡슐화된 객체는 재사용이 용이함
상속성 이미 정의된 부모클래스의 모든 속성과 연산을 자식 클래스가 물려 받는 것
다형성 메시지에 의해 객체(클래스)가 연산을 수행하게 될 때 하나의 메시지에 대해 각 객체(클래스)가 가지고 있는 고유의 방법으로 응답할 수 있는 능력
추상화 불필요한 부분은 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두어 개략화, 모델화 하는 것

데이터의 공통된 성질을 추출하여 슈퍼 클래스를 선정하는 개념
정보 은닉 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통해 접근을 허용하는 것

 

 

더보기

*자바스크립트는 객체지향방식으로는 쓸 수 있으나 객체지향언어라고 보기에는 어렵다.

ES6로 인해 class를 사용하긴 하지만 프로토타입으로 그 기능을 구현했다. 

 

 

자세한 참조:

 

medium.com/amhocode/object-oriented-programming-%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EC%95%8C%EA%B3%A0-%EA%B0%80%EA%B8%B0-a864eff2d618

 

Object-Oriented Programming 객체지향프로그래밍 제대로 알고 가기!

JavaScript 기본 개념 정리

medium.com

 

 

 

'지식' 카테고리의 다른 글

BOM과 DOM  (0) 2021.05.17
SSR, CSR, TTV, TTI  (0) 2021.05.17
프로세스와 스레드의 차이(Process vs Thread)  (0) 2021.04.15
스크립트 언어  (0) 2021.02.15
절차적 프로그래밍 언어  (0) 2021.02.15
Comments