본문 바로가기

정보처리기사 실기

객체지향 프로그래밍 언어

객체지향 프로그래밍 언어

현실 세계의 개체(Entity)를 기계의 부품처럼 하나의 객체로 만들어 기계적인 부품들을 조립해 제품을 만들 듯이 소프트웨어를 개발할 때도 객체들을 조립해서 프로그램을 작성할 수 있도록 한 프로그래밍 기법

 

종류
언어 특징
Java
  • 분산 네트워크 환경에 적용이 가능하며 멀티스레드 기능을 제공하므로 여러 작업 동시 처리 가능
  • 운영체제 및 하드웨어에 독립적이며 이식성이 강함
  • 캡슐화가 가능하고 재사용성이 높다
C++
  • C언어에 객체지향 개념을 적용한 언어
  • 모든 문제를 개체로 모델리해 표현
Smalltalk
  • 1세대 객체지향 프로그래밍 언어 중 하나로 순수한 객체지향 프로그래밍 언어
  • 최초로 GUI를 제공한 언어

 

구성요소
객체
(Object)
  • 데이터(속성)와 이를 처리하기 위한 연산(메소드)을 결합시킨 실체
  • 데이터 구조와 그 위에 수행되는 연산들을 가지고 있는 소프트웨어 모듈
  • 속성 : 한 클래스 내에 속한 객체들이 가지고 있는 데이터 값들을 단위별로 정의하는 것으로서 성질, 분류, 식별, 수량 또는 현재 상태 등을 표현
  • 메소드 : 객체가 메시지를 받아 실행해야 할 때 구체적인 여산을 정의하는 것으로 객체의 상태를 참조하거나 변경하는 수단
클래스
(Class)
  • 두개 이상의 유사한 객체들을 묶어서 하나의 공통된 특성을 표현하는 요소. 즉 공통된 특성과 행위를 갖는 객체의 집합이라고 할 수 있다. 
  • 객체의 유형 또는 타입을 의미
  • 데이터를 추상화하는 단위
메시지
(Message)
  • 객체들 간에 상호작용을 하는데 사용되는 수단으로 객체의 메소드(동작, 연산)를 일으키는 외부 요구사항
  • 메시지를 받은 객체는 대응하는 연산을 수행해 예상된 결과를 반환하게 된다.

 

특징
캡슐화
(Encapsulation)
  • 데이터(속성)와 데이터를 처리하는 함수를 하나로 묶는 것을 의미
  • 캡슐화된 객체의 세부 내용이 외부에 은폐(정보 은닉)되어 변경이 발생할 때 오류의 파급이 적다
  • 캡슐화된 객체 재사용 용이
정보은닉
(Infomation Hiding)
  • 캡슐화에서 가장 중요한 개념으로 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통해 접근 허용
추상화
(Abstraction)
  • 불필요한 부분을 생량하고 객체의 속성 중 가장 중요한 것에만 중점을 둬 개략화하는 것. 즉 모델화하는 것
  • 데이터의 공통된 성질을 추출해 슈퍼 클래스를 선정하는 개념
상속성
(Inheritance)
  • 이미 정의된 상위 클래스(부모 클래스)의 모든 속성과 연산을 하위 클래스가 물려받는 것
  • 상속성을 이용하면 하위 클래스는 상위 클래스의 모든 속성과 연산을 자신의 클래스 내에서 다시 정의하지 않고서도 즉시 사용할 수 있다.
다형성
(Polymorphism)
  • 메시지에 의해 객체(클래스)가 연산을 수행하게 될때 하나의 메시지에 대해 각 객체(클래스)가 가지고 있는 고유한 방법(특성)으로 응답할 수 있는 능력
  • 객체(클래스)들은 동일한 메소드명을 사용하며 같은 의미의 응답을 한다.

 

'정보처리기사 실기' 카테고리의 다른 글

선언형 언어  (0) 2021.06.15
스크립트 언어  (0) 2021.06.15
절차적 프로그래밍 언어  (0) 2021.06.15
Java 표준 입출력  (0) 2021.06.14
scanf() 함수 / printf() 함수  (0) 2021.06.11