[이론] OOP / 함수형프로그래밍

오미희·2021년 12월 10일
0

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

: 프로그래밍 방법론의 일종으로, 프로그래밍 상의 모든 요소들을 상태(state)와 행위(action)로 이루어진 객체로 인식하, 프로그램은 그러한 각각의 객체들의 상호작용을 통해 설계하고 개발된 결과물.
ex) java, C++ , C#, Python

장점
1. 재사용이 용이
2. 유연하고 변경이 용이한 프로그래밍 가능
3. 유지보수에 용이
 ==> 대규모 소프트웨어 개발에 자주 사용됨
3. 객체 클래스 메시지 등을 사용
4. Botton-Up 방식

단점
1. 절차지향언어(ex c언어)와 비교하여 상대적으로 실행속도가 느림
2. 설계에 많은 시간 소요됨

구성요소

- 클래스(class)
	: 같은 종류(관련있는)의 집단에 속하는 속성과 행위를 정의한 것.
    	ex) 붕어빵 틀
- 객체(Object)
	: 클래스의 인스턴스(실제 메모리상 할당된 것)
    	ex) 붕어빵
- 메소드(method),메시지(Message)
	: 클래스에서 생성된 객체를 사용하는 방법.
    	- 메서드 : 객체의 서브루틴 형태로 객체의 속성을 조작하는데 사용
        - 메시지 : 객체 간의 통신을 위해 이용됨.

특징
1. 캡슐화 : 객체의 속성과 행위(method)를 하나의 클래스라는 캡슐에 묶는 것.
** 정보은닉 : 외부에서 객체의 내부데이터로 직접 접근하지 못하게 하여 정보를 은닉하는 것.
3. 상속성 : 기존 클래스의 자료와 연산을 상속받아 사용할 수 있음
4. 추상화 : 공통의 속성이나 기능을 묶은 것. 필요성에 의한 특성만을 가지고 구성하는 것.
4. 다중상속 : 2개 이상의 클래스로부터 상속받을 수 있게 하는 기능.
5. 다형성 : 상위클래스로부터 상속받은 가상함수를 하위클래스에서 오버라이딩 되어 사용되는 것. 즉 하나의 객체가 여러 가지 형태를 가지는 것.

추상자료형 : 자료형의 자료 표현과 자료형의 연산을 캡슐화한 것. => 클래스
추상자료형의 인스턴스 => 객체
추상자료형에서 정의된 연산 => 메소드(함수)
메소드의 호출 => 생성자
오버라이딩 => 상속받은 메서드를 자식객체에서 재정의되는 것.

객체지향형프로그래밍이란?
객체지향형프로그래밍이란2?

** 절차지향적 프로그래밍
: 데이터 흐름에 따른 프로그래밍 기법 -> 대규모 프로젝트 부적합

2. 함수형프로그래밍

:

2-1. 순수함수

  1. 함수형 프로그래밍의 개념에서 순수함수란?
    6.OOP와 함수형 프로그래밍의 가장 큰 차이점은?
profile
안녕하세요

0개의 댓글