p.602, 4-30
1) 객체지향 프로그래밍 언어의 개요
- 현실 세계의 개체(Entity)를 기계의 부품처럼 하나의 객체로 만들어, 기계적인 부품들을 조립하여 제품을 만들 듯이 소프트웨어를 개발할 때도 객체들을 조립해서 프로그램을 작성할 수 있도록 한 프로그래밍 기법
2) 객체지향 프로그래밍 언어의 장, 단점
- 상속을 통한 재사용과 시스템의 확장이 용이하고, 코드의 재활용성이 높음
- 사용자와 개발자 사이의 이해를 쉽게 해주고, 대형 프로그램의 작성이 용이함
- 프로그래밍 구현을 지원해 주는 정형화된 분석 및 설계 방법이 없음
- 구현 시 처리 시간이 지연됨 → 실행 속도가 느림
3) 객체지향 프로그래밍 언어의 종류 ★
언어 |
특징 |
C++ |
- C언어에 객체지향 개념을 적용한 언어 - 모든 문제를 객체로 모델링하여 표현함 |
C# |
- Microsoft에서 개발한 객체지향 프로그래밍 언어 - C++과 JAVA의 문법과 비슷함 - JAVA와 달리 불안전 코드(Unsafe Code)와 같은 기술을 통해 플랫폼 간 상호 운용성 확보 |
JAVA (자바) |
- 분산 네트워크 환경에 적용이 가능하며, 멀티스레드 기능을 제공하므로 여러 작업을 동시에 처리할 수 있음 - 운영체제 및 하드웨어에 독립적이며, 이식성이 강함 - 캡슐화가 가능하고 재사용성이 높음 |
Delphi (델파이) |
- 기본적인 문법은 파스칼 문법에 여러 기능들이 추가되어 존재 - Windows 운영체제에서 모든 부분을 프로그래밍할 수 있는 언어 - 높은 생산성과 간결한 코드가 대표적인 장점 |
Smalltalk |
- 1세대 객체지향 프로그래밍 언어 - 최초로 GUI를 제공한 언어 |
4) 객체지향 프로그래밍 언어의 구성 요소 ★
▶ 객체(Object)
- 독립적으로 식별 가능한 이름을 갖고 있음
- 객체가 가질 수 있는 조건인 상태(State)는 일반적으로 시간에 따라 변함
- 객체와 객체는 상호 연관성에 의한 관계가 형성됨
- 객체가 반응할 수 있는 메시지의 집합을 행위(연산, Method)라고 하며, 객체는 행위의 특징을 나타냄
- 객체는 일정한 기억장소를 갖고 있음
▶ 클래스(Class)
- 공통된 속성과 연산(행위)를 갖는 객체의 집합
- 객체지향 프로그램에서 데이터를 추상화하는 단위 ★
- 각각의 객체들이 갖는 속성과 연산(Method)을 정의하고 있는 틀
- 슈퍼 클래스(Super Class)는 특정 클래스의 상위(부모) 클래스
- 서브 클래스(Sub Class)는 특정 클래스의 하위(자식) 클래스
▶ 인스턴스(Instance)
- 클래스에 속한 각각의 객체
- 클래스로부터 새로운 객체를 생성하는 것을 인스턴스화(Instantiation)라고 함
▶ 메서드(Method)
- 클래스로부터 생성된 객체를 사용하는 방법
- 전통적 시스템의 함수(Function) 또는 프로시저(Procedure)에 해당하는 연산
▶ 메시지(Message)
- 객체에게 어떤 행위를 하도록 지시하기 위한 방법
5) 객체지향 프로그래밍 언어의 특징 ★★
특징 |
설명 |
캡슐화 (Encapsulation) ★ |
▶ 데이터(속성)와 데이터를 처리하는 함수를 하나로 묶는 것 ▶ 캡슐화된 객체의 세부 내용이 외부에 은폐(정보 은닉)되어, 변경이 발생할 때 오류의 파급효과가 적음 ▶ 캡슐화된 객체들은 재사용이 용이함 |
상속성 (Inheritance) |
이미 정의된 상위 클래스(부모 클래스)의 모든 속성과 연산을 하위 클래스(자식 클래스)가 물려받는 것 |
다형성 (Polymorphism) ★ |
메시지에 의해 객체(클래스)가 연산을 수행하게 될 때, 하나의 메시지에 대해 각 객체(클래스)가 가지고 있는 고유의 방법(특성)으로 응답할 수 있는 능력 |
추상화 (Abstraction) |
▶ 불필요한 부분은 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두어 개략화, 모델화 하는 것 ▶ 데이터의 공통된 성질을 추출하여 슈퍼 클래스를 선정하는 개념
|
정보 은닉 (Information Hiding) |
캡슐화에서 가장 중요한 개념으로, 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통하여 접근을 허용하는 것 |
#캡상다추정
'정보처리기사 필기 총정리 > 4과목: 프로그래밍 언어 활용' 카테고리의 다른 글
선언형 언어 ★ (0) | 2020.10.05 |
---|---|
스크립트 언어 ★★ (0) | 2020.10.04 |
절차적 프로그래밍 언어 ★★ (0) | 2020.10.04 |
포인터 ★ (0) | 2020.10.04 |
배열과 문자열 ★★ (0) | 2020.10.04 |
댓글