[이론] OOP / 함수형프로그래밍
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-1. 순수함수
- 함수형 프로그래밍의 개념에서 순수함수란?
6.OOP와 함수형 프로그래밍의 가장 큰 차이점은?
Author And Source
이 문제에 관하여([이론] OOP / 함수형프로그래밍), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@algml/이론-OOP-함수형프로그래밍저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)