본문 바로가기
정보처리기사

[정보처리기사] 객체지향 프로그래밍 언어 - JAVA, C++, Smalltalk

by Pilo 2021. 7. 9.

분산 네트워크 환경에 적용이 가능하며 여러작업을 동시에 처리할 능력을 가진 JAVA, C언어에 객체지향 개념을 넣어 만든 C++, 1세대 객체지향 프로그래밍 언어인 Smalltalk 등 각종 객체 지향언어의 구성 요소와 특징에 대해서 알아보겠습니다.

 

객체지향 프로그래밍 언어의 구성 요소

 

객체(Object)

  • 데이터와 이를 처리하기 위한 연산을 결합시킨 실체
  • 데이터 구조와 그 위에서 수행되는 연산들을 가지고 있는 소프트웨어 모듈

클래스(Class)

  • 두 개 이상의 유사한 객체들을 묶어서 하나의 공통된 특성을 표현하는 요소, 공통된 특성과 행위를 갖는 객체의 집합
  • 객체의 유형 또는 타입을 의미함
  • 데이터를 추상화하는 단위

메시지(Message)

  • 객체들 간의 상호작용을 하는데 사용되는 수단으로 객체의 메소드를 일으키는 외부의 요구사항
  • 메시지를 받은 객체는 대응하는 연산을 수행하여 예상된 결과를 반환

 

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

 

캡슐화

  • 데이터와 데이터를 처리하는 함수를 하나로 묶은 것
  • 캡슐화된 객체의 세부 내용이 외부에 은폐되어, 변경이 발생할 때 오류의 파급 효과가 적음
  • 캡슐화된 객체들은 재사용이 용이함

정보은닉

  • 캡슐화에서 가장 중요한 개념으로, 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통하여 접근을 허용

추상화

  • 불필요한 부분을 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두어 간략화 하는 것, 모델화
  • 데이터의 공통된 성질을 추출하여 슈퍼 클래스를 선정하는 개념

상속성

  • 이미 정의된 상위 클래스의 모든 속성과 연산을 하위 클래스가 물려받는 것
  • 상속성을 이용하면 하위 클래스는 상위 클래스의 모든 속성과 연산을 자신의 클래스 내에서 정의하지 않고서도 즉시 사용이 가능

다형성

  • 메시지에 의해 객체가 연산을 수행하게 될 때 하나의 메시지에 대해 각 객체가 가지고 있는 고유한 방법으로 응답할 수 있는 능력
  • 객체들은 동일한 메소드명을 사용하며 같은 의미의 응답을 함

 

 

댓글