Challenges/정보처리기사

[정보처리기사]4.프로그래밍 언어 활용/프로그래밍 언어/객체지향 프로그래밍

뚱요 2022. 7. 3. 21:21
반응형

객체지향 프로그래밍

프로그래밍 패러다임
- 명령형: 절차적, 객체지향
- 선언형:함수형, 논리형

1. 객체지향 프로그래밍(Object-Oriented Programming, OOP)

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

1.1  OOP 장, 단점

- 상속을 통한 재사용과 시스템의 확장이 용이하고, 코드의 재활용성이 높음

- 사용자와 개발자 사이의 이해를 쉽게 해 주고, 대형 프로그램의 작성이 용이

- 프로그래밍 구현을 지원해 주는 정형화된 분석 및 설계 방법이 없음

- 구현 시 처리 시간이 지연됨 → 실행 속도가 느림

1.2 OOP 종류

C는 절차적 프로그래밍이므로 유의

(1) C++

- C언어에 객체지향 개념을 더한 언어( C에 상위 호환성)

- 모든 문제를 객체로 모델링하여 표현함

- 표준규격 복잡

 

(2) C#

- Microsoft에서 개발한 객체지향 프로그래밍 언어

- C++과 JAVA의 문법과 비슷함

- JAVA와 달리 불안전 코드(Unsafe Code)와 같은 기술을 통해 

플랫폼 간 상호 운용성 확보

 

(3) JAVA

- 객체지향 염두하고 만든 언어

- 컴파일 필요 ( 생성된 Class 파일을 가상 머신을 통해 실행)

- 분산 네트워크 환경 적용이 가능하며, 멀티스레드 기능을 제공하므로 여러 작업을 동시에 처리할 수 있음

- 운영체제 및 하드웨어에 독립적이며, 이식성,보안성 강함

- 캡슐화가 가능하고 재사용성이 높음

 

(4) Delphi

-기본적인 문법은 파스칼 문법에 여러 기능들이 추가되어 존재

- Windows 운영체제에서 모든 부분을 프로그래밍할 수 있는 언어

- 높은 생산성과 간결한 코드가 대표적인 장점

 

(5) Smalltalk

- 1세대 객체지향 프로그래밍 언어

- 최초로 GUI를 제공한 언어

 

1.3 기본 구성 요소

(1) 객체(Object)

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

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

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

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

(2) 클래스(Class)

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

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

- 각각의 객체들이 갖는 속성과 연산(Method)을 정의하고 있는 틀

  • 슈퍼 클래스(Super Class): 특정 클래스의 상위(부모) 클래스
  • 서브 클래스(Sub Class): 특정 클래스의 하위(자식) 클래스

(3) 인스턴스(Instance)

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

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

(4) 메서드(Method)

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

 - 객체가 반응할 수 있는 메시지의 집합을 행위

- 전통적 시스템의 함수(Function)/프로시저(Procedure)에 해당하는 연산

(5) 메시지(Message)

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

 

1.4  객체지향 프로그래밍 특징  e.g. 캡상다추정

(1) 캡슐화(Encapsulation)  22년 2회 기출

- 데이터(속성)와 데이터를 처리하는 연산을 하나로 묶는 것

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

- 캡슐화된 객체들은 재사용이 용이함

정보 은닉(Information Hiding)
 캡슐화에서 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통하여 접근을 허용하는 것

(2) 상속성(Inheritance)

이미 정의된 상위 클래스(부모 클래스)의 모든 속성과 연산을 하위 클래스(자식 클래스)가 물려받는

(3) 다형성(Polymorphism)

메시지에 의해 객체(클래스)가 연산을 수행하게 될 때, 하나의 메시지에 대해 각 객체(클래스)가 가지고 있는 고유의 방법(특성)으로 응답할 수 있는 능력

(4) 추상화(Abstraction)

- 불필요한 부분은 생략하고 객체의 속성 중 가장 중요한 것에만 중점을 두어 개략화, 모델화 하는 것

- 데이터의 공통된 성질을 추출하여 슈퍼 클래스를 선정하는 개념

 

[정보처리기사] 개정된 정보처리기사 필기 목차

 

[정보처리기사] 개정된 정보처리기사 필기 목차

 정처기 필기 100문제 중 각 챕터 당 20문제로 구성됩니다. 출판사 시나공의 정보처리기사 교재와 이전 기출문제들을 참고로 하여 간단히 키워드로요약하여 작성하였습니다. 각 중요도에 따라서

potato-potahto.tistory.com

반응형